<h1>ESP Native API</h1>
<a name="Extensions"></a><h1>Extensions</h1>
  <table class="apiIndex" title="Extensions">
<tr class="apiDef">
<td class="apiName"><a href="#group___esp_abbrev" class="nameRef">EspAbbrev</a></td>
<td class="apiBrief">Abbreviated ESP API.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___esp_parse" class="nameRef">EspParse</a></td>
<td class="apiBrief">ESP page parser structure.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___esp_req" class="nameRef">EspReq</a></td>
<td class="apiBrief">ESP request structure.</td></tr>
<tr class="apiDef">
<td class="apiName"><a href="#group___esp_route" class="nameRef">EspRoute</a></td>
<td class="apiBrief">EspRoute extended route configuration.</td></tr>
</table>
<a name="Functions"></a><h1>Functions</h1>
  <table class="apiIndex" title="Functions">
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga3de25d5c0ff5232da8f3460794fcc37d" class="nameRef">absuri</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an absolute URI with a scheme and host.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1gadba1deb080e78b4517119a0294489b44" class="nameRef">addHeader</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a header to the transmission using a format string.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1gade12fd081c2a017ad6068cc9e77f3977" class="nameRef">addParam</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a request parameter value if not already defined.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1ga06c4528395fd1b375d9ac771cf59a8b5" class="nameRef">canUser</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *abilities, <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> warn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a user has the required abilities.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_rec" class="ref">EdiRec*</a></td><td><a href="#group___esp_abbrev_1gaecb1d262045b8a9b793c692c6f6df854" class="nameRef">createRec</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#mpr.html#group___mpr_json" class="ref">MprJson</a> *data)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a record and initialize field values.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1ga6792082e8fe50d8f1796777ff54b3c99" class="nameRef">createRecFromParams</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *table)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a record from the request parameters.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1gaa0c7f407af0140b15091227e9a8e839f" class="nameRef">createSession</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a session state object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga35677b9aa8d61543db5ea80377e823a6" class="nameRef">destroySession</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Destroy a session state object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga9db9b8b7e2c750f6f942da0478866de2" class="nameRef">dontAutoFinalize</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Don&apos;t auto-finalize this request.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gaae88740666af5ee9b21ad39648857db8" class="nameRef">espAddHeader</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a header to the transmission using a format string.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gad772b64162b7f4eb80ef1a3a1795175d" class="nameRef">espAddHeaderString</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a header to the transmission.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_route_1gaa6e0943224a139d93f465b7ff2060c36" class="nameRef">espAddHomeRoute</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route for the home page.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_route_1gae90883055ee760dca316820bf3d81f96" class="nameRef">espAddPak</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *version)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add the specified pak to the package.json packs list.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga9e1210b2a79fcbf13a85d2f78ccdb0bd" class="nameRef">espAddParam</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a request parameter value if it is not already defined.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_route_1gab12f7c6108ac1d0a972fc837e9b9dec8" class="nameRef">espAddRouteSet</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *set)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add a route set.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gaa50588be6fe69e04738fc0276d7afbbb" class="nameRef">espAppendHeader</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Append a transmission header.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gacb696dcdff91355fc9df37f5c7171a01" class="nameRef">espAppendHeaderString</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Append a transmission header string.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gab6aeea9bb5cb500eabf3e1cfd1745f03" class="nameRef">espAutoFinalize</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Auto-finalize transmission of the http request.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___esp_route_1ga0d812aed0ff96f0ffa281860270e8910" class="nameRef">espBindProc</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pattern, void *actionProc)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define an action for a URI pattern.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___esp_route_1ga359fc00970449817245c5759a1ad8c4c" class="nameRef">espBuildScript</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *page, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *cacheName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *layout, <a href="#struct_esp_state" class="ref">EspState</a> *state, char **err)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Convert an ESP web page into C code.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___esp_route_1ga01d07d3db11f99c0d1b93b068ec56c67" class="nameRef">espCache</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, int lifesecs, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add caching for response content.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gad47b01dcb2ca01085b18fce4636a8a8d" class="nameRef">espClearCurrentSession</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Clear the current authenticated session.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_route_1gaa6f62a5bb430f502b6067cac74d948e4" class="nameRef">espCompile</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#mpr.html#group___mpr_dispatcher" class="ref">MprDispatcher</a> *dispatcher, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *source, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *module, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *cacheName, int isView, char **errMsg)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Compile an ESP page, controller or view.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___esp_route" class="ref">EspRoute*</a></td><td><a href="#esp_8h_1a0ac80522752809c14f74ccaf02e48de5" class="nameRef">espCreateRoute</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create an EspRoute object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1gafa8b3b579ec913aa905ec9c173571059" class="nameRef">espCreateSession</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a session state object.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_route_1ga321abe89cc91246b2a44f40493988670" class="nameRef">espDefineAction</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *targetKey, void *actionProc)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define an action.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_route_1gae250d071bb458546c8ed5fad3aba5e84" class="nameRef">espDefineBase</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="#esp_8h_1aa0c56d9f50902eb9cf16889d3d95c129" class="ref">EspProc</a> baseProc)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a base function to invoke for all controller actions.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_route_1gab7ebccfe31eb1e07f3f40db700d18bd9" class="nameRef">espDefineView</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, void *viewProc)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a view.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gaf6d82157def054f3c2c38b96f15872ce" class="nameRef">espDestroySession</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Destroy a session state object.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#esp_8h_1a4ac8508f88ec5ed15eec2627ae71a4eb" class="nameRef">espEmail</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *to, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *from, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *subject, <a href="edi.html#mpr.html#group___mpr_time" class="ref">MprTime</a> date, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *mime, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *message, <a href="edi.html#mpr.html#group___mpr_list" class="ref">MprList</a> *files)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Send mail using sendmail.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___esp_route_1gac85c52178c5b387706bb31b419f9f059" class="nameRef">espExpandCommand</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *command, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *source, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *module)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Expand a compile or link command template.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gac142434246bc5558dfe73a78ded7a7f0" class="nameRef">espFinalize</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Indicate the request is finalized.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gadf50b51bf7ab10d828e85be140c005c5" class="nameRef">espFlush</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Flush transmit data.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#http.html#group___http_auth" class="ref">HttpAuth*</a></td><td><a href="#group___esp_req_1ga71e492b0a2ad58a5eb75616556da4f92" class="nameRef">espGetAuth</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the current route HttpAuth object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_route_1ga97b13560e8c066d70810b2df3e8d7f78" class="nameRef">espGetConfig</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *defaultValue)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a configuration value from the ESP package.json.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#http.html#group___http_conn" class="ref">HttpConn*</a></td><td><a href="#group___esp_req_1ga41a42035766ff5d2fd0fd74588e167ea" class="nameRef">espGetConn</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the current request connection.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#mpr.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a></td><td><a href="#group___esp_req_1ga3cb308121f5659d48f58c217959c3800" class="nameRef">espGetContentLength</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the receive body content length.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1gadf281290e500c98b3c7214c410b32599" class="nameRef">espGetContentType</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the receive body content type.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1ga355cd184340dfdc35d7ab291e75e56e7" class="nameRef">espGetCookie</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a request cookie.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1ga1c47b7c05e41bc39b9f3426134c1bf7c" class="nameRef">espGetCookies</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the request cookies.</td></tr>
<tr class="apiDef"><td class="apiType">void*</td><td><a href="#group___esp_req_1ga65d11f787b22a5deda37f8d53f479c56" class="nameRef">espGetData</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the private data reference for the current request set via <a class="ref" href="#group___esp_abbrev_1ga0e9f5142b6aa4d7c3695ef62a9e348b3">setData</a></td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi" class="ref">Edi*</a></td><td><a href="#group___esp_req_1gadb72373974f7f4d05a8dbbdf966c6496" class="nameRef">espGetDatabase</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the current database instance.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1gaf694aade2329f4c9dcb7c6d5a77e62c1" class="nameRef">espGetDocuments</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the default documents directory for the request route.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___esp_route" class="ref">EspRoute*</a></td><td><a href="#group___esp_req_1gaefe462fb7ee0c6fa6a0c7842b973de3c" class="nameRef">espGetEspRoute</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the current extended route information.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1ga307d1d071150431efd74a1450ed095ce" class="nameRef">espGetFeedback</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *type)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a feedback message defined via <a class="ref" href="#group___esp_abbrev_1gac782d72d3f7c11dce5c48befaff8ac0a">feedback</a></td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_grid" class="ref">EdiGrid*</a></td><td><a href="#group___esp_req_1ga440de6fba35ad0513c2925f11a0f3710" class="nameRef">espGetGrid</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the current database grid.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1gaddf870926cbeee2779b687522d5db0aa" class="nameRef">espGetHeader</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get an rx http header.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#mpr.html#struct_mpr_hash" class="ref">MprHash*</a></td><td><a href="#group___esp_req_1ga8daa40cd83a356ad1b1b940751b1df00" class="nameRef">espGetHeaderHash</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the hash table of rx Http headers.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___esp_req_1ga8b03cbaba01462fb4a7349c9d02fddf3" class="nameRef">espGetHeaders</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get all the request http headers.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___esp_req_1ga91bd6b5ad25cefe913aa6ebfe43fa928" class="nameRef">espGetIntParam</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, int defaultValue)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a request pararmeter as an integer.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1ga4c81c8e4e35c7a3001473462ccd3bbf6" class="nameRef">espGetMethod</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the HTTP method.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1ga98e63a9a924ec667a3c1b540e56792d3" class="nameRef">espGetParam</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *defaultValue)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a request parameter.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#mpr.html#group___mpr_json" class="ref">MprJson*</a></td><td><a href="#group___esp_req_1ga32cf20e26c01dd271c2ae52d16796154" class="nameRef">espGetParams</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the request parameter hash table.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1gaf5c02acc34944a568e7959bbe321e85a" class="nameRef">espGetPath</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the request URI path string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1gaf84aa1df39869744c4e0ac87e99f1a89" class="nameRef">espGetQueryString</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the request query string.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___esp_req_1ga400095fc3f1743660baedac7c95ff53c" class="nameRef">espGetReferrer</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the referring URI.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#http.html#group___http_route" class="ref">HttpRoute*</a></td><td><a href="#group___esp_req_1ga769c951ecdea1f7ab0666eb54e5419df" class="nameRef">espGetRoute</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the current route HttpRoute object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi" class="ref">Edi*</a></td><td><a href="#group___esp_req_1ga72246c1dc89e871ec596ae0959077af2" class="nameRef">espGetRouteDatabase</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the default database defined on a route.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1ga6517bb2ea40e6c3725c3b689f66894c8" class="nameRef">espGetRouteVar</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a route variable.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1ga63a13780299e2781dca728d4087165bb" class="nameRef">espGetSessionID</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, int create)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the session state ID.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___esp_req_1ga4323100f7ccf0a198b0ee2593749fe5e" class="nameRef">espGetStatus</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the response status.</td></tr>
<tr class="apiDef"><td class="apiType">char*</td><td><a href="#group___esp_req_1gad4631deeb02544938b8590806ae8bb8e" class="nameRef">espGetStatusMessage</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the Http response status message.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#mpr.html#group___mpr_list" class="ref">MprList*</a></td><td><a href="#group___esp_req_1ga71aeaa3e8171c1cc2cdfe7d7b872156b" class="nameRef">espGetUploads</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the uploaded files.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1gaba2676d2009310d3fca8f22a16efbf60" class="nameRef">espGetUri</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the request URI string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_req_1gacfd0fe0f0edb952cd670564ac47febc4" class="nameRef">espHasGrid</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a current grid has been defined.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_route_1gab784ceb8c6581201c05c93729f733b6c" class="nameRef">espHasPak</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if the ESP application includes the specified pak.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_req_1ga0f7bf9745f2331aebb05069bba6ba356" class="nameRef">espHasRec</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a current record has been defined and save to the database.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___esp_route_1gaca1c2bea3bde8c348d3d70c35ef21667" class="nameRef">espInit</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *prefix, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Initialize ESP.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#esp_8h_1a56eafbf70fb0509e85aa5070becbaca6" class="nameRef">espInitHtmlOptions</a>(<a href="#struct_esp" class="ref">Esp</a> *esp)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add HTLM internal options to the Esp.options hash.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#esp_8h_1ab4f5a8bba279335541372845ab87e094" class="nameRef">espInitParser</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Initialize the ESP configuration file parser.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_req_1gab41302669720bac29959211f2560797a" class="nameRef">espIsCurrentSession</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if the connection is being made on behalf of the current, single authenticated user.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_req_1gac50e125f397c0dce5072fab8f551cd32" class="nameRef">espIsEof</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if the receive input stream is at end-of-file.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_req_1ga610467cde893472908e6c25bde472fc4" class="nameRef">espIsFinalized</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if the request has been finalized.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_req_1gab216150d5432ef9465462e8e69f5f31f" class="nameRef">espIsSecure</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if the connection is using SSL and is secure.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___esp_route_1ga619751fdfd2aa494d0074bd661e5e103" class="nameRef">espLoadCompilerRules</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Load the compiler rules from esp-compile.json.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___esp_route_1ga8719b78bdfb4e3228c6e9be843f45140" class="nameRef">espLoadConfig</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Configure an ESP application.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_req_1gacc2fb39132dab5f624a0f026d2e73440" class="nameRef">espMatchParam</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Match a request parameter with an expected value.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#esp_8h_1a2f63950b45dd427b2bdfa7ae1c8f85c0" class="nameRef">espOpen</a>(<a href="edi.html#mpr.html#group___mpr_module" class="ref">MprModule</a> *module)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>ESP initialization entry point.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_grid" class="ref">EdiGrid*</a></td><td><a href="#group___esp_req_1ga84d7deb907925e1de92294aad5a57ee8" class="nameRef">espReadTable</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Read a table from the current database.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1ga64f9ab9cb2c3c8b0f7f580cb22e45ce5" class="nameRef">espReceive</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, char *buf, <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Read receive body content.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga2b1dc5b4a688fc1062395d6420e85ef9" class="nameRef">espRedirect</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, int status, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Redirect the client.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gaaf5114ed096b363628229ea0ae0f94c3" class="nameRef">espRedirectBack</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Redirect the client back to the referrer.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga5a80980e6392bbc981cb03f5a4f59cd6" class="nameRef">espRemoveCookie</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove a cookie.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___esp_req_1ga8743524e4c8aff73135e0ad6f2d44d7c" class="nameRef">espRemoveHeader</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove a header from the transmission.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gaa0ec215ce461623736d45abb44697fba" class="nameRef">espRemoveSessionVar</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove a session state variable.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1gaa833750f16375fa479d0fcc22dfc2169" class="nameRef">espRender</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render a formatted string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1gae1fa564a4b89afb64df3d9681973e1bf" class="nameRef">espRenderBlock</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *buf, <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render a block of data to the client.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1ga94594750521ce6621691dcec43a2d670" class="nameRef">espRenderCached</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render cached content.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1ga0089c449429cb9e4021acbc82ee80177" class="nameRef">espRenderConfig</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render the client configuration string in JSON.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gaf20a43f48bfe4741cc6bb9f2877932b1" class="nameRef">espRenderDocument</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render an ESP document.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1gaf5951884b79343ba98eb53b8c2d28a4f" class="nameRef">espRenderError</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, int status, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render an error message back to the client and finalize the request.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#esp_8h_1a866f3f7347e4ae34becaa6923ff0c586" class="nameRef">espRenderFeedback</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *types)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render feedback messages.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1ga543bb9b12ee3f064a730a47164feac0d" class="nameRef">espRenderFile</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render the contents of a file back to the client.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1ga53ad9ef2ea042b04db7307acde5ebf02" class="nameRef">espRenderSafe</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render a formatted string after HTML escaping.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1ga743eec6372aeb305a939bc9b0026281e" class="nameRef">espRenderSafeString</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *s)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render a safe string of data to the client.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1ga2bc125ce68d2a8a8992228f0232c9b6f" class="nameRef">espRenderString</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *s)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render a string of data to the client.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1gad0c3cc923d09313ed81476b74c32ab00" class="nameRef">espRenderVar</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render the value of a request variable to the client.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_req_1gaef2c8a287bbbd155ceeb919f281e8e5b" class="nameRef">espRenderView</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *view, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render an ESP view page to the client.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___esp_route" class="ref">EspRoute*</a></td><td><a href="#group___esp_route_1ga1f27d029ea92c75a16d2c67d31f64141" class="nameRef">espRoute</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Return the corresponding EspRoute for the given Route.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___esp_route_1gacd7c962cf79038c3d7604c72dc43bbdb" class="nameRef">espSaveConfig</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Save the in-memory ESP package.json configuration to the default location for the ESP application defined by the specified route.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1gaed0422d33553efa73195661fd80efaee" class="nameRef">espSendGrid</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *grid, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Send a database grid as a JSON string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1ga1ba6eef08895cd89005dd96262d1cd53" class="nameRef">espSendRec</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Send a database record as a JSON string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1gabc11971fcd5d12fe7a9907b2c564781b" class="nameRef">espSendResult</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> success)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Send a JSON response result.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_req_1ga54f5ce21966922b0883d1942ccbeae8d" class="nameRef">espSetAutoFinalizing</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> on)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Enable auto-finalizing for this request.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___esp_route_1gada3b399d10e3f1eaee004cde256e379f" class="nameRef">espSetConfig</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a configuration value to the ESP package.json.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga6ea189a01c1c680e3f5d77396b3bd3a8" class="nameRef">espSetConn</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the current request connection.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gae9b3e3ddb3bf784d77cba59045dfeb81" class="nameRef">espSetContentLength</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#mpr.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> length)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a content length header in the transmission.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga7bb7c062a2fb64c1756c93dc79481c2c" class="nameRef">espSetContentType</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *mimeType)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the transmission (response) content mime type.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga58039e1fafe24481848bf1b47a2d444f" class="nameRef">espSetCookie</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *domain, <a href="edi.html#mpr.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> lifespan, <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> isSecure)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a cookie in the transmission.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga3311af6602f80872182db7112b832f5e" class="nameRef">espSetCurrentSession</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set this authenticated session as the current session.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#esp_8h_1ac44e50b7d3c22c093e139a172c878608" class="nameRef">espSetData</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, void *data)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a private data reference for the current request.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga12f466c3ea4ae6e7eb2692c80e03a45b" class="nameRef">espSetFeedback</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *type, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a feedback message.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga7508b46ff71aa46719836d2720840047" class="nameRef">espSetFeedbackv</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *type, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, va_list args)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Send a feedback message.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_grid" class="ref">EdiGrid*</a></td><td><a href="#group___esp_req_1ga6e09b2658067694a86d1535bf56aebae" class="nameRef">espSetGrid</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *grid)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the current database grid.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga66c536436b8a99612b1ce571c315b39b" class="nameRef">espSetHeader</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a transmission header.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1gafcb200922fb98165c0485348ea640d01" class="nameRef">espSetHeaderString</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a simple key/value transmission header.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga3d21ff0ee522ae25885378e8cb55d1e9" class="nameRef">espSetIntParam</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, int value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set an integer request parameter value.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga0ea346bbee09c401e90f0b908e7476ba" class="nameRef">espSetNotifier</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#http.html#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a> notifier)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a notifier callback for this connection.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga491fdeaf71f15fb950d54245b7de865b" class="nameRef">espSetParam</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a request parameter value.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_rec" class="ref">EdiRec*</a></td><td><a href="#group___esp_req_1gaab0d7914afa7352d5708048c021f1ee1" class="nameRef">espSetRec</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the current database record.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga3151f73107b752661efecbacf9011894" class="nameRef">espSetStatus</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, int status)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a Http response status.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga4ed2f95cccb206fc9069c0a77c5c1e62" class="nameRef">espShowRequest</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Show request details.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#esp_8h_1a2b6ab1f6cf9333533ece4ed0f871e0a6" class="nameRef">espStaticInitialize</a>(<a href="#group___esp_route_1ga8de65adb179b1ab04bf7c1d621ffff9c" class="ref">EspModuleEntry</a> entry, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *appName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *routeName)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Initialize a static library ESP module.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_route_1ga115c8f838daf7b187cb8a07787734f37" class="nameRef">espTestConfig</a>(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *desired)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a configuration property from the ESP package.json has a desired value.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga2d10fdd68ab00d306d344c815f7655e7" class="nameRef">espUpdateCache</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *data, int lifesecs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Update the cached content for a request.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_req_1ga585c648e2d4b3b6183bf22cc976b7d4b" class="nameRef">espUpdateRec</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write a record to the database.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1ga47475da9d7a9da33d0d07cd2a8211b8d" class="nameRef">espUri</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a URI.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1gac782d72d3f7c11dce5c48befaff8ac0a" class="nameRef">feedback</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *type, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a feedback message.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga32d626626eee0bc4ade146973f6abb1c" class="nameRef">finalize</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Finalize the response.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1gadac116554b543b7c4228c018a85882f5" class="nameRef">flush</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Flush transmit data.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#http.html#group___http_auth" class="ref">HttpAuth*</a></td><td><a href="#group___esp_abbrev_1ga35c88eaa69d732f54eb5829a85dffcce" class="nameRef">getAuth</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the auth object for the current route.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#mpr.html#group___mpr_list" class="ref">MprList*</a></td><td><a href="#group___esp_abbrev_1ga4ab3c77c072c0e1b7a21439a85240d7e" class="nameRef">getColumns</a>(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a list of column names.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga9647d3deb6392c55c9c1a144da45f797" class="nameRef">getConfig</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a field from the application package.json configuration.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#http.html#group___http_conn" class="ref">HttpConn*</a></td><td><a href="#group___esp_abbrev_1gabe448b3542b4d1391e80e74192a09cb3" class="nameRef">getConn</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the connection object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#mpr.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a></td><td><a href="#group___esp_abbrev_1gad6c78e62403541ae5c8695a126fa73d2" class="nameRef">getContentLength</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the receive body content length.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga0c4e333f8e42f16b3d071f10de8f823c" class="nameRef">getContentType</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the receive body content type.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga9e29353c73f7482f1b04657c044804a9" class="nameRef">getCookies</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the request cookies.</td></tr>
<tr class="apiDef"><td class="apiType">void*</td><td><a href="#group___esp_abbrev_1ga47d7be20d82041d251a6bb6ed3575b7d" class="nameRef">getData</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the private data reference for the current request set via <a class="ref" href="#group___esp_abbrev_1ga0e9f5142b6aa4d7c3695ef62a9e348b3">setData</a></td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi" class="ref">Edi*</a></td><td><a href="#group___esp_abbrev_1ga9aa7c416a3ac3b6d732c1325e3f2ef15" class="nameRef">getDatabase</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the current database instance.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#mpr.html#group___mpr_dispatcher" class="ref">MprDispatcher*</a></td><td><a href="#group___esp_abbrev_1ga93b589637883c1707073619898354ff1" class="nameRef">getDispatcher</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the connection dispatcher object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1gadcce96e047630e80fc6283689be47ae0" class="nameRef">getDocuments</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the default document root directory for the request route.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___esp_route" class="ref">EspRoute*</a></td><td><a href="#group___esp_abbrev_1ga29c40a3c98f7e8b07c4bab47a29d8ade" class="nameRef">getEspRoute</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the extended route EspRoute structure.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga35b754641777f940d7902f1887cbda55" class="nameRef">getFeedback</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *type)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a feedback message defined via <a class="ref" href="#group___esp_abbrev_1gac782d72d3f7c11dce5c48befaff8ac0a">feedback</a></td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1gac52ae6c15d4dc95d264a15235187f915" class="nameRef">getField</a>(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a field from the current database record.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1gaca4c0e5a528f05f835631b4f60b2917c" class="nameRef">getFieldError</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a field in the current record has input validation errors.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_grid" class="ref">EdiGrid*</a></td><td><a href="#group___esp_abbrev_1ga2e60477a5b4168f59758c93507b4b899" class="nameRef">getGrid</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the current database grid.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga3a9e6969b5beb4c554ec9032b322c0fe" class="nameRef">getHeader</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get an rx http header.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1ga6cb98a81fac3b68ef772a6cc7a37a156" class="nameRef">getMethod</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the HTTP method.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1gaaa8e74bb48500059683a45d7a4126d94" class="nameRef">getPath</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the request URI path string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga2382c30fce39d310820e556415abb763" class="nameRef">getQuery</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the HTTP URI query string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_rec" class="ref">EdiRec*</a></td><td><a href="#group___esp_abbrev_1ga8a4d997f211531f9ad4a21133f761349" class="nameRef">getRec</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the current database record.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1gaefcc3825a86579c9c2669e239f8b1431" class="nameRef">getReferrer</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the referring URI.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="#group___esp_req" class="ref">EspReq*</a></td><td><a href="#group___esp_abbrev_1ga3dea06818770c33f63a8b60f793a6999" class="nameRef">getReq</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the ESP request object.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#http.html#group___http_route" class="ref">HttpRoute*</a></td><td><a href="#group___esp_abbrev_1ga3e7e849481e913c3971b7e0bf73ce088" class="nameRef">getRoute</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the HttpRoute object for the current route.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga9b8a2c16e5e9dfa287b466b5d580a3e3" class="nameRef">getSecurityToken</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the security token.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1gaff139c388f84eb5e478f2391c1fedafb" class="nameRef">getSessionID</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the session state ID.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga241f0cd4f5d49f8a137f1024415b2674" class="nameRef">getSessionVar</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a session state variable.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#mpr.html#group___mpr_list" class="ref">MprList*</a></td><td><a href="#group___esp_abbrev_1ga12e7ea4b97725ef6cf2cb4aa02d6f21b" class="nameRef">getUploads</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the uploaded files.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga1562f14a38ec9ace0787756964e51cda" class="nameRef">getUri</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the request URI string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1ga25287207066ad592e465b36148439e2d" class="nameRef">hasGrid</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a current grid has been defined.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1ga9ae793b0c68219491acb86735fa7a4d8" class="nameRef">hasRec</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a current record has been defined and save to the database.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1gaa3f886ac8ecb0b4f2f6decb1da1f5c82" class="nameRef">input</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *options)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render an input field as part of a form.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga4db83aca814319dcd588e114176d0a09" class="nameRef">inputSecurityToken</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render an input field with a hidden XSRF security token.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1ga36e02fce10743365c3be3f4d7311bcb6" class="nameRef">isEof</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if the receive input stream is at end-of-file.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1ga2c49e32dea0137b5bd9516c217b47fe5" class="nameRef">isFinalized</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if a http request is finalized.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1ga609397e6582775d72e233942fb46cec8" class="nameRef">isSecure</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test if the connection is using SSL and is secure.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#mpr.html#struct_mpr_hash" class="ref">MprHash*</a></td><td><a href="#group___esp_abbrev_1gae478be50b70b65cbc43e79a2f7e87ad3" class="nameRef">makeHash</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Make a hash table container of property values.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#mpr.html#group___mpr_json" class="ref">MprJson*</a></td><td><a href="#group___esp_abbrev_1ga3e4e27c82fe15a0e658412b26747e0d4" class="nameRef">makeJson</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Make a JSON object container of property values.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_rec" class="ref">EdiRec*</a></td><td><a href="#group___esp_abbrev_1ga0292bb1e6965cb8befad09d4ce7a2839" class="nameRef">makeRec</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *content)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Make a record.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_req_1gad221f00eaacb1253a8e9d0f29e11c55e" class="nameRef">makeUri</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a URI.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga1d0fda1c77c88bd3b74df6572365b1f3" class="nameRef">md5</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *str)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get an MD5 checksum.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1ga9514f98ecae65f2654ad8a42c9549b62" class="nameRef">modeIs</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *check)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Test the the application mode.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga22f8d5c52a1ee9eedf326acf2737a4fd" class="nameRef">nonce</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Generate a onetime random string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1gad638c34898123293ebc120c1f9396a9c" class="nameRef">param</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a request parameter.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#mpr.html#group___mpr_json" class="ref">MprJson*</a></td><td><a href="#group___esp_abbrev_1gac880717bdc6e6f631de7c5c95491df53" class="nameRef">params</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get the request parameter hash table.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_rec" class="ref">EdiRec*</a></td><td><a href="#group___esp_abbrev_1gaebd6eb20a67d36dca94880e1545dfe1b" class="nameRef">readRec</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Read the identified record.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_rec" class="ref">EdiRec*</a></td><td><a href="#group___esp_abbrev_1gaa26e4e1c0388326035e93a9334f6e0ba" class="nameRef">readRecByKey</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Read a record identified by key value.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_rec" class="ref">EdiRec*</a></td><td><a href="#group___esp_abbrev_1ga36f33afdfe9bdd2a583f43d2af4ed060" class="nameRef">readRecWhere</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fieldName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *operation, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Read one record.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_grid" class="ref">EdiGrid*</a></td><td><a href="#group___esp_abbrev_1ga550c1016448c47c8ef7b78612a67ccd2" class="nameRef">readTable</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Read all the records in table from the database.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_grid" class="ref">EdiGrid*</a></td><td><a href="#group___esp_abbrev_1gaf240f97d3c1081236e74be34c03305c7" class="nameRef">readWhere</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fieldName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *operation, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Read matching records.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_abbrev_1ga3a7af8bca824b7941d058eeb598194ca" class="nameRef">receive</a>(char *buf, <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Read receive body content.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga79cf206805a9595395af14e7c35f289d" class="nameRef">redirect</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Redirect the client.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1gad75c0fe1f7da45beaec75d3cddf7bdb4" class="nameRef">redirectBack</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Redirect the client back to the referrer.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga1a0cf9222507a1e1472cf53856bebb2c" class="nameRef">removeCookie</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove a cookie.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1ga09091b0bc981b74fdf0b197fbee8adab" class="nameRef">removeRec</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove a record from a database table.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga7a4f867b83fd68a2f888fe2850572d6e" class="nameRef">removeSessionVar</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Remove a session state variable.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_abbrev_1gaf89154adc3cbf6d6a6a32c6b4457c593" class="nameRef">render</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render a formatted string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_abbrev_1gaa3ab885ce858d809f47571c64681b96d" class="nameRef">renderCached</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render cached content.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_abbrev_1ga680e8d96388553f684b29b6007e2411a" class="nameRef">renderConfig</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render the package.json.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga5c6a2717cd75e9e0069b206507e5207e" class="nameRef">renderError</a>(int status, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render an error message back to the client and finalize the request.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1gacf71df9dabcd97ec88211ef4561c5033" class="nameRef">renderFeedback</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *types)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render feedback messages.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_abbrev_1gaa1e37f244a0e0796df494dfb756472a8" class="nameRef">renderFile</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render a file back to the client.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_abbrev_1ga40445cbba9d5b3a5baec51e59e3d6340" class="nameRef">renderSafe</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render a formatted string after HTML escaping.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_abbrev_1gaaafafb9657167c8093d9015733dd15e2" class="nameRef">renderString</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *s)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render a string of data to the client.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_abbrev_1ga688f12fa155a796f2f35f33cc52d5abb" class="nameRef">renderVar</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render the value of a request variable to the client.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1gaf0db430f850378bd83c514a0dda77fb9" class="nameRef">renderView</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *view)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render an ESP page to the client.</td></tr>
<tr class="apiDef"><td class="apiType">int</td><td><a href="#group___esp_abbrev_1ga1d226bb7d309a4586b862d409f53ab9f" class="nameRef">runCmd</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *command, char *input, char **output, char **error, <a href="edi.html#mpr.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> timeout, int flags)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Run a command.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga55805dac6f16fafd2fdc18df732b7b46" class="nameRef">scripts</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *patterns)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render scripts.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1gab3444f174346e0d8e8d4d3a43d451c5e" class="nameRef">securityToken</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Add the security token to the response.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1gab8d6f093fa851a73a6e80b20ea1cbc9d" class="nameRef">sendGrid</a>(<a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *grid)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Send a Edatabase grid as a JSON string.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a></td><td><a href="#group___esp_req_1gaa7f2ab9ce2162dcc0a10f82e74a92d80" class="nameRef">sendRec</a>(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Send a database record as a JSON string.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_req_1ga5a39a9b8619ef0cc07818c3a79eb023c" class="nameRef">sendResult</a>(<a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> status)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Send a JSON response result.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga45c8bf65c9eacac2512533dbc006db2b" class="nameRef">session</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Get a session state variable.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga3a877e198637c1ec75ff2a53dc8d7ebd" class="nameRef">setConn</a>(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the current request connection.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1gafe8d897ff436eabc6fc275f76222a5c3" class="nameRef">setContentType</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *mimeType)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the transmission (response) content mime type.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1gaea6086cd23b087b13921a4028940792c" class="nameRef">setCookie</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *domain, <a href="edi.html#mpr.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> lifespan, <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> isSecure)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Define a cookie header to send with the response.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga0e9f5142b6aa4d7c3695ef62a9e348b3" class="nameRef">setData</a>(void *data)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a private data reference for the current request.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_rec" class="ref">EdiRec*</a></td><td><a href="#group___esp_abbrev_1ga6c39fec614ae333bcc5448930ab2dc8d" class="nameRef">setField</a>(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fieldName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Update a record field without writing to the database.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_rec" class="ref">EdiRec*</a></td><td><a href="#group___esp_abbrev_1gaaabf240c427f1f246fadc85535525401" class="nameRef">setFields</a>(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec, <a href="edi.html#mpr.html#group___mpr_json" class="ref">MprJson</a> *data)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Update record fields without writing to the database.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_grid" class="ref">EdiGrid*</a></td><td><a href="#group___esp_abbrev_1gaeed08cdbf64becc6ea822e9208831f63" class="nameRef">setGrid</a>(<a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *grid)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the current database grid.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1gaf4cbdf3eef410884ed0928066d0503f2" class="nameRef">setHeader</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a transmission header.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1gad58993583c3513dc5ad97e1a8e93e30a" class="nameRef">setIntParam</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, int value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set an integer request parameter value.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga7d227ab7fdc91d90a4484550ea9482b8" class="nameRef">setNotifier</a>(<a href="edi.html#http.html#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a> notifier)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a notifier callback for the connection.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga65fe2a97ffad029e6229e4e2dd290dd5" class="nameRef">setParam</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a request parameter value.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#group___edi_rec" class="ref">EdiRec*</a></td><td><a href="#group___esp_abbrev_1gafef8aa52aab6f3d8a3eebfe7eeb0edf4" class="nameRef">setRec</a>(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set the current database record.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1gadb4f7bc3020ab9c481f1ebcaf1ed3f2a" class="nameRef">setSessionVar</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a session state variable.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga63470999d986c7d2d064dc44cdc2fcac" class="nameRef">setStatus</a>(int status)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Set a Http response status.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga07243a4b521119ce41362163afb45032" class="nameRef">setTimeout</a>(void *proc, <a href="edi.html#mpr.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> timeout, void *data)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a timeout event.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga70074b92c4e5b0381a6a61f9e0f8e2cc" class="nameRef">showRequest</a>()</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Show request details.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga61c6ed68dcee1735502c33d2f362d5c7" class="nameRef">stylesheets</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *patterns)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Render stylesheets.</td></tr>
<tr class="apiDef"><td class="apiType">void</td><td><a href="#group___esp_abbrev_1ga71ab6f699454ab16232f98c28a47935c" class="nameRef">updateCache</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *data, int lifesecs)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Update the cached content for a request.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1ga8aef62e678a3e5602d8dd4b2b85db394" class="nameRef">updateField</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fieldName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write a value to a database table field.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1ga4a1259d2b9cb98ecba45266954ee31e4" class="nameRef">updateFields</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#mpr.html#group___mpr_json" class="ref">MprJson</a> *data)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write field values to a database row.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1gaac69d2eab0ce7dfea56ac4714d0e6e55" class="nameRef">updateRec</a>(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Write a record to the database.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a></td><td><a href="#group___esp_abbrev_1ga443a4d955b4cd2ea70b904ff75d9f06f" class="nameRef">updateRecFromParams</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *table)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Update a record from the request parameters.</td></tr>
<tr class="apiDef"><td class="apiType"><a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar*</a></td><td><a href="#group___esp_abbrev_1ga78e593db4bd2c434476b90c5b99a17ca" class="nameRef">uri</a>(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target, ...)</td></tr><tr class="apiBrief"><td>&nbsp;</td><td>Create a URI link.</td></tr>
</table>
<a name="Typedefs"></a><h1>Typedefs</h1>
<table class="apiIndex" title="typedefs">
<tr class="apiDef"><td class="apiName"><a href="#struct_esp" class="nameRef">Esp</a></td><td class="apiBrief">Top level ESP structure.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___esp_req_1ga60cdb8438d2c59c8014fe550129fbc0d" class="nameRef">EspAction</a></td><td class="apiBrief">ESP Action.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___esp_route_1ga8de65adb179b1ab04bf7c1d621ffff9c" class="nameRef">EspModuleEntry</a></td><td class="apiBrief">Entry point for a loadable ESP module.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#esp_8h_1aa0c56d9f50902eb9cf16889d3d95c129" class="nameRef">EspProc</a></td><td class="apiBrief">Procedure callback.</td></tr>
<tr class="apiDef"><td class="apiName"><a href="#group___esp_req_1ga4645d40178e3548fd0e6ad13fec1b5ed" class="nameRef">EspViewProc</a></td><td class="apiBrief">View procedure callback.</td></tr>
</table>
<a name="Defines"></a><h1>Defines</h1>
<table class="apiIndex" title="Defines">
<tr class="apiDef">
<td>#define</td><td><a href="#esp_8h_1aa6f48e3182369365e297875b006aa9a2" class="nameRef">ESP_COMPILE_JSON</a>&nbsp;&nbsp;&nbsp;&quot;esp-compile.json&quot;</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Compile rules filename.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#esp_8h_1aa68f305d1ecb9ade4367dd644343c3e3" class="nameRef">ESP_COMPILE_OPTIMIZED</a>&nbsp;&nbsp;&nbsp;1</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Override to compile in release mode.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#esp_8h_1a9e73077dd63f91100f534eccf609087b" class="nameRef">ESP_COMPILE_SYMBOLS</a>&nbsp;&nbsp;&nbsp;0</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Override to compile in debug mode.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#esp_8h_1a61427a6279173262d67b485f3e83a5d8" class="nameRef">ESP_LIFESPAN</a>&nbsp;&nbsp;&nbsp;(3600 * TPS)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default generated content cache lifespan.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#esp_8h_1a43fbeae907747e051a493bb33e63a4f4" class="nameRef">ESP_LISTEN</a>&nbsp;&nbsp;&nbsp;&quot;4000&quot;</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Default listening endpoint for the esp program.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#esp_8h_1aba24bbfd8deaacad96a6aa1aa88b4dd1" class="nameRef">ESP_TOK_INCR</a>&nbsp;&nbsp;&nbsp;1024</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Growth increment for ESP tokens.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#esp_8h_1aaa20b3ba42a13818a076cb243333f8dd" class="nameRef">ESP_UNLOAD_TIMEOUT</a>&nbsp;&nbsp;&nbsp;(10)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Very short timeout for reloading.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#esp_8h_1a127996447ce859e8cd9a792090171d1f" class="nameRef">ME_ESP_EMAIL_TIMEOUT</a>&nbsp;&nbsp;&nbsp;(60 * 1000)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Timeout for sending email.</td></tr>
<tr class="apiDef">
<td>#define</td><td><a href="#esp_8h_1a70054cf2427d6a3f1de5d4843046ef6b" class="nameRef">ME_ESP_RELOAD_TIMEOUT</a>&nbsp;&nbsp;&nbsp;(5 * 1000)</td>
</tr>
<tr class="apiBrief"><td>&nbsp;</td><td>Timeout for reloading esp modules.</td></tr>
  </table>
<h1>EspAbbrev</h1>
<a name="group___esp_abbrev"></a>
<div class="api">
  <div class="prototype">EspAbbrev</div>
  <div class="apiDetail">
<p>Abbreviated ESP API.</p>
    <dl><dt><b>Description</b>:</dt><dd>This is a short-form API that uses the current HttpConn connection object. These APIs are designed to be terse and highly readable. Consequently, they are not prefixed with &quot;esp&quot;.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    </table></dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga3de25d5c0ff5232da8f3460794fcc37d"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    absuri
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target, ...)
  </div>
  <div class="apiDetail">
<p>Create an absolute URI with a scheme and host.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">target</td><td>The URI target. See httpLink for details.</td>
    <tr><td class="param">...</td><td>arguments to the formatted target string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A normalized, absolute Uri string containing scheme and host.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gadba1deb080e78b4517119a0294489b44"></a>
<div class="api">
  <div class="prototype">
    void
    addHeader
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Add a header to the transmission using a format string.</p>
    <dl><dt><b>Description</b>:</dt><dd>Add a header if it does not already exist.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">key</td><td>Http response header key.</td>
    <tr><td class="param">fmt</td><td>Printf style formatted string to use as the header key value.</td>
    <tr><td class="param">...</td><td>Arguments for fmt.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code. Returns MPR_ERR_ALREADY_EXISTS if the header already exists.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gade12fd081c2a017ad6068cc9e77f3977"></a>
<div class="api">
  <div class="prototype">
    void
    addParam
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Add a request parameter value if not already defined.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">name</td><td>Name of the request parameter to set.</td>
    <tr><td class="param">value</td><td>Value to set.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga06c4528395fd1b375d9ac771cf59a8b5"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    canUser
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *abilities, <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> warn)
  </div>
  <div class="apiDetail">
<p>Test if a user has the required abilities.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">abilities</td><td>Comma separated list of abilities to test for. If null, then use the required abilities defined for the current request route.</td>
    <tr><td class="param">warn</td><td>If true, warn the user via <a class="ref" href="#group___esp_req_1ga5a39a9b8619ef0cc07818c3a79eb023c">sendResult</a></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the user has all the required abilities.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaecb1d262045b8a9b793c692c6f6df854"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *
    createRec
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#mpr.html#group___mpr_json" class="ref">MprJson</a> *data)
  </div>
  <div class="apiDetail">
<p>Create a record and initialize field values.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will call <a class="ref" href="#group___edi_1gad4e706a1a2d9ff527c9d42612ebeeae1" external="edi.dtags">ediCreateRec</a> to create a record based on the given table&apos;s schema. It will then call <a class="ref" href="#group___edi_1ga916af8d529a028643e87b3b8c8973a85" external="edi.dtags">ediSetFields</a> to update the record with the given data. The record is remembered for this request as the &quot;current&quot; record and can be retrieved via: <a class="ref" href="#group___esp_abbrev_1ga8a4d997f211531f9ad4a21133f761349">getRec()</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">tableName</td><td>Database table name.</td>
    <tr><td class="param">data</td><td>Json object with field values.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>EdRec instance.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga6792082e8fe50d8f1796777ff54b3c99"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    createRecFromParams
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *table)
  </div>
  <div class="apiDetail">
<p>Create a record from the request parameters.</p>
    <dl><dt><b>Description</b>:</dt><dd>A new record is created with the request parameters in the specified table. The record is remembered for this request as the &quot;current&quot; record and can be retrieved via: <a class="ref" href="#group___esp_abbrev_1ga8a4d997f211531f9ad4a21133f761349">getRec()</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">table</td><td>Database table to update.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the update is successful.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaa0c7f407af0140b15091227e9a8e839f"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    createSession
()
  </div>
  <div class="apiDetail">
<p>Create a session state object.</p>
    <dl><dt><b>Description</b>:</dt><dd>The session state object can be used to share state between requests. If a session has not already been created, this call will create a new session. It will create a response cookie containing a session ID that will be sent to the client with the response. Note: Objects are stored in the session state using JSON serialization.</dd></dl>
    <dl><dt>Returns:</dt><dd>Session ID string.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga35677b9aa8d61543db5ea80377e823a6"></a>
<div class="api">
  <div class="prototype">
    void
    destroySession
()
  </div>
  <div class="apiDetail">
<p>Destroy a session state object.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will emit an expired cookie to the client to force it to erase the session cookie.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga9db9b8b7e2c750f6f942da0478866de2"></a>
<div class="api">
  <div class="prototype">
    void
    dontAutoFinalize
()
  </div>
  <div class="apiDetail">
<p>Don&apos;t auto-finalize this request.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gac782d72d3f7c11dce5c48befaff8ac0a"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    feedback
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *type, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Set a feedback message.</p>
    <dl><dt><b>Description</b>:</dt><dd>Feedback messages are a convenient way to aggregate messages state information in the response. The <a class="ref" href="#group___esp_abbrev_1ga35b754641777f940d7902f1887cbda55">getFeedback</a> API can be used to retrieve feedback messages. Feedback messages are removed at the completion of the request.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">type</td><td>type of feedback message. This may be set to any word, but the following feedback types are typically supported as per RFC 5424: &quot;debug&quot;, &quot;info&quot;, &quot;notice&quot;, &quot;warn&quot;, &quot;error&quot;, &quot;critical&quot;.</td>
    <tr><td class="param">fmt</td><td>Printf style formatted string to use as the message.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the request has been successful so far, i.e. there is not an error feedback message defined. Return false if there is an error feedback defined. This permits feedback to be chained as: sendResult(feedback(&quot;error&quot;, ...));.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga32d626626eee0bc4ade146973f6abb1c"></a>
<div class="api">
  <div class="prototype">
    void
    finalize
()
  </div>
  <div class="apiDetail">
<p>Finalize the response.</p>
    <dl><dt><b>Description</b>:</dt><dd>Signals the end of any and all response data and flushes any buffered write data to the client. If the request has already been finalized, this call has no additional effect. This routine calls <a class="ref" href="#group___esp_req_1gac142434246bc5558dfe73a78ded7a7f0">espFinalize</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gadac116554b543b7c4228c018a85882f5"></a>
<div class="api">
  <div class="prototype">
    void
    flush
()
  </div>
  <div class="apiDetail">
<p>Flush transmit data.</p>
    <dl><dt><b>Description</b>:</dt><dd>This writes any buffered data.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga35c88eaa69d732f54eb5829a85dffcce"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#http.html#group___http_auth" class="ref">HttpAuth</a> *
    getAuth
()
  </div>
  <div class="apiDetail">
<p>Get the auth object for the current route.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga4ab3c77c072c0e1b7a21439a85240d7e"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#mpr.html#group___mpr_list" class="ref">MprList</a> *
    getColumns
(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec)
  </div>
  <div class="apiDetail">
<p>Get a list of column names.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">rec</td><td>Database record.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An MprList of column names in the given table. If there is no record defined, an empty list is returned.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga9647d3deb6392c55c9c1a144da45f797"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getConfig
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field)
  </div>
  <div class="apiDetail">
<p>Get a field from the application package.json configuration.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">field</td><td>Property field name in package.json. May contain dots.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The field value. Returns &quot;&quot; if the field is not found.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Deprecated.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gabe448b3542b4d1391e80e74192a09cb3"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *
    getConn
()
  </div>
  <div class="apiDetail">
<p>Get the connection object.</p>
    <dl><dt><b>Description</b>:</dt><dd>Before a view or controller is run, the current connection object for the request is saved in thread local data. Most EspAbbrev APIs take an HttpConn object as an argument.</dd></dl>
    <dl><dt>Returns:</dt><dd>HttpConn connection instance object.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gad6c78e62403541ae5c8695a126fa73d2"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#mpr.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a>
    getContentLength
()
  </div>
  <div class="apiDetail">
<p>Get the receive body content length.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the length of the receive body content (if any). This is used in servers to get the length of posted data and in clients to get the response body length.</dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the response content data in bytes.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga0c4e333f8e42f16b3d071f10de8f823c"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getContentType
()
  </div>
  <div class="apiDetail">
<p>Get the receive body content type.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the content mime type of the receive body content (if any).</dd></dl>
    <dl><dt>Returns:</dt><dd>Mime type of any receive content. Set to NULL if not posted data.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga9e29353c73f7482f1b04657c044804a9"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getCookies
()
  </div>
  <div class="apiDetail">
<p>Get the request cookies.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the cookies defined in the current request.</dd></dl>
    <dl><dt>Returns:</dt><dd>Return a string containing the cookies sent in the Http header of the last request.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga47d7be20d82041d251a6bb6ed3575b7d"></a>
<div class="api">
  <div class="prototype">
    void *
    getData
()
  </div>
  <div class="apiDetail">
<p>Get the private data reference for the current request set via <a class="ref" href="#group___esp_abbrev_1ga0e9f5142b6aa4d7c3695ef62a9e348b3">setData</a></p>
    <dl><dt>Returns:</dt><dd>Reference to private data.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga9aa7c416a3ac3b6d732c1325e3f2ef15"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi" class="ref">Edi</a> *
    getDatabase
()
  </div>
  <div class="apiDetail">
<p>Get the current database instance.</p>
    <dl><dt><b>Description</b>:</dt><dd>A route may have a default database configured via the EspDb Appweb.conf configuration directive. The database will be opened when the web server initializes and will be shared between all requests using the route.</dd></dl>
    <dl><dt>Returns:</dt><dd>Edi EDI database handle.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga93b589637883c1707073619898354ff1"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#mpr.html#group___mpr_dispatcher" class="ref">MprDispatcher</a> *
    getDispatcher
()
  </div>
  <div class="apiDetail">
<p>Get the connection dispatcher object.</p>
    <dl><dt>Returns:</dt><dd>MprDispatcher connection dispatcher instance object.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gadcce96e047630e80fc6283689be47ae0"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getDocuments
()
  </div>
  <div class="apiDetail">
<p>Get the default document root directory for the request route.</p>
    <dl><dt>Returns:</dt><dd>A directory path name.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga29c40a3c98f7e8b07c4bab47a29d8ade"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___esp_route" class="ref">EspRoute</a> *
    getEspRoute
()
  </div>
  <div class="apiDetail">
<p>Get the extended route EspRoute structure.</p>
    <dl><dt>Returns:</dt><dd>EspRoute instance.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga35b754641777f940d7902f1887cbda55"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getFeedback
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *type)
  </div>
  <div class="apiDetail">
<p>Get a feedback message defined via <a class="ref" href="#group___esp_abbrev_1gac782d72d3f7c11dce5c48befaff8ac0a">feedback</a></p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">type</td><td>type of feedback message to retrieve. This may be set to any word, but the following feedback types are typically supported as per RFC 5424: &quot;debug&quot;, &quot;info&quot;, &quot;notice&quot;, &quot;warn&quot;, &quot;error&quot;, &quot;critical&quot;.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Reference to private data.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gac52ae6c15d4dc95d264a15235187f915"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getField
(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field)
  </div>
  <div class="apiDetail">
<p>Get a field from the current database record.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">rec</td><td>Database record.</td>
    <tr><td class="param">field</td><td>Field name to return.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>String value for &quot;field&quot; in the current record.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaca4c0e5a528f05f835631b4f60b2917c"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getFieldError
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field)
  </div>
  <div class="apiDetail">
<p>Test if a field in the current record has input validation errors.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga2e60477a5b4168f59758c93507b4b899"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *
    getGrid
()
  </div>
  <div class="apiDetail">
<p>Get the current database grid.</p>
    <dl><dt><b>Description</b>:</dt><dd>The current grid is defined via <a class="ref" href="#group___esp_abbrev_1gaeed08cdbf64becc6ea822e9208831f63">setGrid</a></dd></dl>
    <dl><dt>Returns:</dt><dd>EdiGrid instance.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga3a9e6969b5beb4c554ec9032b322c0fe"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getHeader
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)
  </div>
  <div class="apiDetail">
<p>Get an rx http header.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get a http response header for a given header key.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">key</td><td>Name of the header to retrieve. This should be a lower case header name. For example: &quot;Connection&quot;.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Value associated with the header key or null if the key did not exist in the response.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaaa8e74bb48500059683a45d7a4126d94"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getPath
()
  </div>
  <div class="apiDetail">
<p>Get the request URI path string.</p>
    <dl><dt><b>Description</b>:</dt><dd>This is a convenience API to return the request URI path. This is the portion after the application/route prefix.</dd></dl>
    <dl><dt>Returns:</dt><dd>The <a class="ref" href="#group___esp_req_1ga41a42035766ff5d2fd0fd74588e167ea">espGetConn()</a>-&gt;rx-&gt;pathInfo.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga2382c30fce39d310820e556415abb763"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getQuery
()
  </div>
  <div class="apiDetail">
<p>Get the HTTP URI query string.</p>
    <dl><dt><b>Description</b>:</dt><dd>This is a convenience API to return the query string for the current request.</dd></dl>
    <dl><dt>Returns:</dt><dd>The <a class="ref" href="#group___esp_req_1ga41a42035766ff5d2fd0fd74588e167ea">espGetConn()</a>-&gt;rx-&gt;parsedUri-&gt;query property.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga8a4d997f211531f9ad4a21133f761349"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *
    getRec
()
  </div>
  <div class="apiDetail">
<p>Get the current database record.</p>
    <dl><dt>Returns:</dt><dd>EdiRec instance.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaefcc3825a86579c9c2669e239f8b1431"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getReferrer
()
  </div>
  <div class="apiDetail">
<p>Get the referring URI.</p>
    <dl><dt><b>Description</b>:</dt><dd>This returns the referring URI as described in the HTTP &quot;referer&quot; (yes the HTTP specification does spell it incorrectly) header. If this header is not defined, this routine will return the home URI as returned by uri(&quot;~&quot;).</dd></dl>
    <dl><dt>Returns:</dt><dd>String URI back to the referring URI. If no referrer is defined, refers to the home URI.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga3dea06818770c33f63a8b60f793a6999"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___esp_req" class="ref">EspReq</a> *
    getReq
()
  </div>
  <div class="apiDetail">
<p>Get the ESP request object.</p>
    <dl><dt>Returns:</dt><dd>EspReq connection instance object.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga3e7e849481e913c3971b7e0bf73ce088"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *
    getRoute
()
  </div>
  <div class="apiDetail">
<p>Get the HttpRoute object for the current route.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga9b8a2c16e5e9dfa287b466b5d580a3e3"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getSecurityToken
()
  </div>
  <div class="apiDetail">
<p>Get the security token.</p>
    <dl><dt><b>Description</b>:</dt><dd>To minimize form replay attacks, a security token may be required for POST requests on a route. Client-side Javascript must then send this token as a request header in subsquent POST requests. To configure a route to require security tokens, call <a class="ref" href="#group___http_route_1ga4b4feabc71a3ad15f2b9d33722a2340b" external="http.dtags">httpSetRouteXsrf</a></dd></dl>
    <dl><dt>Returns:</dt><dd>The security token.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaff139c388f84eb5e478f2391c1fedafb"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getSessionID
()
  </div>
  <div class="apiDetail">
<p>Get the session state ID.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will get a session and return the session ID. This will create a new session state storage area if one does not already exist.</dd></dl>
    <dl><dt>Returns:</dt><dd>The session state identifier string.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga241f0cd4f5d49f8a137f1024415b2674"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getSessionVar
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Get a session state variable.</p>
    <dl><dt><b>Description</b>:</dt><dd>The <a class="ref" href="#group___esp_abbrev_1ga45c8bf65c9eacac2512533dbc006db2b">session</a> API is an alias for this routine.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">name</td><td>Variable name to get.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The session variable value. Returns NULL if not set.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga12e7ea4b97725ef6cf2cb4aa02d6f21b"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#mpr.html#group___mpr_list" class="ref">MprList</a> *
    getUploads
()
  </div>
  <div class="apiDetail">
<p>Get the uploaded files.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the list of uploaded files.</dd></dl>
    <dl><dt>Returns:</dt><dd>A list of HttpUploadFile objects.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga1562f14a38ec9ace0787756964e51cda"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getUri
()
  </div>
  <div class="apiDetail">
<p>Get the request URI string.</p>
    <dl><dt><b>Description</b>:</dt><dd>This is a convenience API to return the request URI.</dd></dl>
    <dl><dt>Returns:</dt><dd>The <a class="ref" href="#group___esp_req_1ga41a42035766ff5d2fd0fd74588e167ea">espGetConn()</a>-&gt;rx-&gt;uri.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga25287207066ad592e465b36148439e2d"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    hasGrid
()
  </div>
  <div class="apiDetail">
<p>Test if a current grid has been defined.</p>
    <dl><dt>Returns:</dt><dd>&quot;true&quot; if a current grid has been defined.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga9ae793b0c68219491acb86735fa7a4d8"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    hasRec
()
  </div>
  <div class="apiDetail">
<p>Test if a current record has been defined and save to the database.</p>
    <dl><dt><b>Description</b>:</dt><dd>This call returns &quot;true&quot; if a current record is defined and has been saved to the database with a valid &quot;id&quot; field.</dd></dl>
    <dl><dt>Returns:</dt><dd>&quot;true&quot; if a current record with a valid &quot;id&quot; is defined.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaa3f886ac8ecb0b4f2f6decb1da1f5c82"></a>
<div class="api">
  <div class="prototype">
    void
    input
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *field, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *options)
  </div>
  <div class="apiDetail">
<p>Render an input field as part of a form.</p>
This is a smart input control that will call the appropriate input control based on the database record field data type. This control should not be used if using the esp-angular-mvc or other similar client-side Javascript framework
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">field</td><td>Name for the input field. This defines the HTML element name and provides the source of the initial value to display. The field should be a property of the form current record. If this call is used without a form control record, the actual data value should be supplied via the options.value property.</td>
    <tr><td class="param">options</td><td>These are in JSON string form and are converted to attributes to pass to the input element <ul><li>noescape Boolean Do not HTML escape the text before rendering. </li><li>... Other options are converted and rendered as HTML attributes.</li></ul></td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga4db83aca814319dcd588e114176d0a09"></a>
<div class="api">
  <div class="prototype">
    void
    inputSecurityToken
()
  </div>
  <div class="apiDetail">
<p>Render an input field with a hidden XSRF security token.</p>
    <dl><dt><b>Description</b>:</dt><dd>Security tokens are used to help guard against CSRF threats. This call will generate a hidden input field that includes the CSRF security token for the form. This call should not be included in Angular client applications as the Angular framework will automatically handle the security token.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga36e02fce10743365c3be3f4d7311bcb6"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    isEof
()
  </div>
  <div class="apiDetail">
<p>Test if the receive input stream is at end-of-file.</p>
    <dl><dt>Returns:</dt><dd>&quot;true&quot; if there is no more receive data to read.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga2c49e32dea0137b5bd9516c217b47fe5"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    isFinalized
()
  </div>
  <div class="apiDetail">
<p>Test if a http request is finalized.</p>
    <dl><dt><b>Description</b>:</dt><dd>This tests if <a class="ref" href="#group___esp_req_1gac142434246bc5558dfe73a78ded7a7f0">espFinalize</a> or <a class="ref" href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" external="http.dtags">httpFinalize</a> has been called for a request.</dd></dl>
    <dl><dt>Returns:</dt><dd>&quot;true&quot; if the request has been finalized.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga609397e6582775d72e233942fb46cec8"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    isSecure
()
  </div>
  <div class="apiDetail">
<p>Test if the connection is using SSL and is secure.</p>
    <dl><dt>Returns:</dt><dd>&quot;true&quot; if the connection is using SSL.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gae478be50b70b65cbc43e79a2f7e87ad3"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#mpr.html#struct_mpr_hash" class="ref">MprHash</a> *
    makeHash
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Make a hash table container of property values.</p>
    <dl><dt><b>Description</b>:</dt><dd>This routine formats the given arguments, parses the result as a JSON string and returns an equivalent hash of property values. The result after formatting should be of the form: hash(&quot;{ key: &apos;value&apos;, key2: &apos;value&apos;, key3: &apos;value&apos; }&quot;);.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">fmt</td><td>Printf style format string.</td>
    <tr><td class="param">...</td><td>arguments.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> instance.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga3e4e27c82fe15a0e658412b26747e0d4"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#mpr.html#group___mpr_json" class="ref">MprJson</a> *
    makeJson
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Make a JSON object container of property values.</p>
    <dl><dt><b>Description</b>:</dt><dd>This routine formats the given arguments, parses the result into a JSON object.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">fmt</td><td>Printf style format string.</td>
    <tr><td class="param">...</td><td>arguments.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>MprJson instance.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga0292bb1e6965cb8befad09d4ce7a2839"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *
    makeRec
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *content)
  </div>
  <div class="apiDetail">
<p>Make a record.</p>
    <dl><dt><b>Description</b>:</dt><dd>This call makes a free-standing data record based on the JSON format content string. The record is not saved to the database.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">content</td><td>JSON format content string. The content should be a set of property names and values.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An EdiRec instance.</dd></dl>
    <dl><dt><b>Example</b>:</dt><dd>: rec = ediMakeRec(&quot;{ id: 1, title: &apos;Message One&apos;, body: &apos;Line one&apos; }&quot;);.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga1d0fda1c77c88bd3b74df6572365b1f3"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    md5
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *str)
  </div>
  <div class="apiDetail">
<p>Get an MD5 checksum.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">str</td><td>String to hash.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An allocated MD5 checksum string.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga9514f98ecae65f2654ad8a42c9549b62"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    modeIs
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *check)
  </div>
  <div class="apiDetail">
<p>Test the the application mode.</p>
    <dl><dt><b>Description</b>:</dt><dd>This is typically set to &quot;debug&quot; or &quot;release&quot;. The mode is defined by the &quot;mode&quot; property in the package.json.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">check</td><td>Mode to compare with the current application mode.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the current app mode matches the check mode.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga22f8d5c52a1ee9eedf326acf2737a4fd"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    nonce
()
  </div>
  <div class="apiDetail">
<p>Generate a onetime random string.</p>
    <dl><dt>Returns:</dt><dd>An MD5 encoded random string.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gad638c34898123293ebc120c1f9396a9c"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    param
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Get a request parameter.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the value of a named request parameter. Form variables are defined via www-urlencoded query or post data contained in the request. This routine calls <a class="ref" href="#group___esp_req_1ga98e63a9a924ec667a3c1b540e56792d3">espGetParam</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">name</td><td>Name of the request parameter to retrieve.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>String containing the request parameter&apos;s value. Caller should not free. Returns NULL if the parameter is not defined.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gac880717bdc6e6f631de7c5c95491df53"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#mpr.html#group___mpr_json" class="ref">MprJson</a> *
    params
()
  </div>
  <div class="apiDetail">
<p>Get the request parameter hash table.</p>
    <dl><dt><b>Description</b>:</dt><dd>This call gets the params hash table for the current request. Route tokens, request query data, and www-url encoded form data are all entered into the params table after decoding. Use <a class="ref" href="#group___mpr_hash_1ga28eaf688ae47d09abd9552fe003cedbb" external="mpr.dtags">mprLookupKey</a> to retrieve data from the table. This routine calls <a class="ref" href="#group___esp_req_1ga32cf20e26c01dd271c2ae52d16796154">espGetParams</a></dd></dl>
    <dl><dt>Returns:</dt><dd>MprJson instance containing the request parameters.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaebd6eb20a67d36dca94880e1545dfe1b"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *
    readRec
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)
  </div>
  <div class="apiDetail">
<p>Read the identified record.</p>
    <dl><dt><b>Description</b>:</dt><dd>Read the record identified by the request param(&quot;id&quot;) from the nominated table. The record is remembered for this request as the &quot;current&quot; record and can be retrieved via: <a class="ref" href="#group___esp_abbrev_1ga8a4d997f211531f9ad4a21133f761349">getRec()</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">tableName</td><td>Database table name.</td>
    <tr><td class="param">key</td><td>Key value of the record to read.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The identified record. Returns NULL if the table or record cannot be found.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaa26e4e1c0388326035e93a9334f6e0ba"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *
    readRecByKey
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)
  </div>
  <div class="apiDetail">
<p>Read a record identified by key value.</p>
    <dl><dt><b>Description</b>:</dt><dd>Read a record from the given table as identified by the key value. The record is remembered for this request as the &quot;current&quot; record and can be retrieved via: <a class="ref" href="#group___esp_abbrev_1ga8a4d997f211531f9ad4a21133f761349">getRec()</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">tableName</td><td>Database table name.</td>
    <tr><td class="param">key</td><td>Key value of the record to read.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Record instance of EdiRec.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga36f33afdfe9bdd2a583f43d2af4ed060"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *
    readRecWhere
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fieldName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *operation, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Read one record.</p>
    <dl><dt><b>Description</b>:</dt><dd>This runs a simple query on the database and selects the first matching record. The query selects a row that has a &quot;field&quot; that matches the given &quot;value&quot;. The record is remembered for this request as the &quot;current&quot; record and can be retrieved via: <a class="ref" href="#group___esp_abbrev_1ga8a4d997f211531f9ad4a21133f761349">getRec()</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">tableName</td><td>Database table name.</td>
    <tr><td class="param">fieldName</td><td>Database field name to evaluate.</td>
    <tr><td class="param">operation</td><td>Comparison operation. Set to &quot;==&quot;, &quot;!=&quot;, &quot;&lt;&quot;, &quot;&gt;&quot;, &quot;&lt;=&quot; or &quot;&gt;=&quot;.</td>
    <tr><td class="param">value</td><td>Data value to compare with the field values.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>First matching record. Returns NULL if no matching records.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga550c1016448c47c8ef7b78612a67ccd2"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *
    readTable
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName)
  </div>
  <div class="apiDetail">
<p>Read all the records in table from the database.</p>
    <dl><dt><b>Description</b>:</dt><dd>This reads a table and returns a grid containing the table data. The grid of records is remembered for this request as the &quot;current&quot; grid and can be retrieved via: <a class="ref" href="#group___esp_abbrev_1ga2e60477a5b4168f59758c93507b4b899">getGrid()</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">tableName</td><td>Database table name.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A grid containing all table rows. Returns NULL if the table cannot be found.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaf240f97d3c1081236e74be34c03305c7"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *
    readWhere
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fieldName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *operation, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Read matching records.</p>
    <dl><dt><b>Description</b>:</dt><dd>This runs a simple query on the database and returns matching records in a grid. The query selects all rows that have a &quot;field&quot; that matches the given &quot;value&quot;. The grid of records is remembered for this request as the &quot;current&quot; grid and can be retrieved via: <a class="ref" href="#group___esp_abbrev_1ga2e60477a5b4168f59758c93507b4b899">getGrid()</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">tableName</td><td>Database table name.</td>
    <tr><td class="param">fieldName</td><td>Database field name to evaluate.</td>
    <tr><td class="param">operation</td><td>Comparison operation. Set to &quot;==&quot;, &quot;!=&quot;, &quot;&lt;&quot;, &quot;&gt;&quot;, &quot;&lt;=&quot; or &quot;&gt;=&quot;.</td>
    <tr><td class="param">value</td><td>Data value to compare with the field values.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A grid containing all matching records. Returns NULL if no matching records.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga3a7af8bca824b7941d058eeb598194ca"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    receive
(char *buf, <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)
  </div>
  <div class="apiDetail">
<p>Read receive body content.</p>
    <dl><dt><b>Description</b>:</dt><dd>Read body content from the client. This will not block by default. Use httpReadBlock for more options to read data.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">buf</td><td>Buffer to accept content data.</td>
    <tr><td class="param">size</td><td>Size of the buffer.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of bytes read into the buffer.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga79cf206805a9595395af14e7c35f289d"></a>
<div class="api">
  <div class="prototype">
    void
    redirect
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target)
  </div>
  <div class="apiDetail">
<p>Redirect the client.</p>
    <dl><dt><b>Description</b>:</dt><dd>Redirect the client to a new uri. This will redirect with an HTTP 302 status. If a different HTTP status code is required, use <a class="ref" href="#group___esp_req_1ga2b1dc5b4a688fc1062395d6420e85ef9">espRedirect</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">target</td><td>New target uri for the client.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gad75c0fe1f7da45beaec75d3cddf7bdb4"></a>
<div class="api">
  <div class="prototype">
    void
    redirectBack
()
  </div>
  <div class="apiDetail">
<p>Redirect the client back to the referrer.</p>
    <dl><dt><b>Description</b>:</dt><dd>Redirect the client to the referring URI.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga1a0cf9222507a1e1472cf53856bebb2c"></a>
<div class="api">
  <div class="prototype">
    void
    removeCookie
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Remove a cookie.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">name</td><td>Cookie name.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga09091b0bc981b74fdf0b197fbee8adab"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    removeRec
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)
  </div>
  <div class="apiDetail">
<p>Remove a record from a database table.</p>
    <dl><dt><b>Description</b>:</dt><dd>Remove the record identified by the key value from the given table. If the removal succeeds, the feedback message {inform: &quot;Deleted Record&quot;} will be created. If the removal fails, a feedback message {error: &quot;Cannot delete Record&quot;} will be created.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">tableName</td><td>Database table name.</td>
    <tr><td class="param">key</td><td>Key value of the record to remove.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Record instance of EdiRec.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga7a4f867b83fd68a2f888fe2850572d6e"></a>
<div class="api">
  <div class="prototype">
    void
    removeSessionVar
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Remove a session state variable.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">name</td><td>Variable name to set.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaf89154adc3cbf6d6a6a32c6b4457c593"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    render
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Render a formatted string.</p>
    <dl><dt><b>Description</b>:</dt><dd>Render a formatted string of data into packets to the client. Data packets will be created as required to store the write data. This call may block waiting for data to drain to the client.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">fmt</td><td>Printf style formatted string.</td>
    <tr><td class="param">...</td><td>Arguments for fmt.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaa3ab885ce858d809f47571c64681b96d"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    renderCached
()
  </div>
  <div class="apiDetail">
<p>Render cached content.</p>
    <dl><dt><b>Description</b>:</dt><dd>Render the saved, cached response from a prior request to this URI. This is useful if the caching mode has been set to &quot;manual&quot;.</dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga680e8d96388553f684b29b6007e2411a"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    renderConfig
()
  </div>
  <div class="apiDetail">
<p>Render the package.json.</p>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga5c6a2717cd75e9e0069b206507e5207e"></a>
<div class="api">
  <div class="prototype">
    void
    renderError
(int status, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Render an error message back to the client and finalize the request.</p>
The output is Html escaped for security
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">status</td><td>Http status code.</td>
    <tr><td class="param">fmt</td><td>Printf style message format.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gacf71df9dabcd97ec88211ef4561c5033"></a>
<div class="api">
  <div class="prototype">
    void
    renderFeedback
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *types)
  </div>
  <div class="apiDetail">
<p>Render feedback messages.</p>
    <dl><dt><b>Description</b>:</dt><dd>Feedback notices are one-time messages that are passed to the next request (only). See <a class="ref" href="#group___esp_req_1ga12f466c3ea4ae6e7eb2692c80e03a45b">espSetFeedback</a> and <a class="ref" href="#group___esp_abbrev_1gac782d72d3f7c11dce5c48befaff8ac0a">feedback</a> for how to define feedback messages. This API will render feedback messages as HTML in place of the renderFeedback call in ESP page.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">types</td><td>Types of feedback message to retrieve. Set to &quot;*&quot; to retrieve all types of feedback. This may be set to any word, but the following feedback types are typically supported as per RFC 5424: &quot;debug&quot;, &quot;info&quot;, &quot;notice&quot;, &quot;warn&quot;, &quot;error&quot;, &quot;critical&quot;.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaa1e37f244a0e0796df494dfb756472a8"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    renderFile
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)
  </div>
  <div class="apiDetail">
<p>Render a file back to the client.</p>
    <dl><dt><b>Description</b>:</dt><dd>Render a formatted string of data and then HTML escape. Data packets will be created as required to store the write data. This call may block waiting for data to drain to the client.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">path</td><td>Filename of the file to send to the client.</td>
    <tr><td class="param">...</td><td>Arguments for fmt.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga40445cbba9d5b3a5baec51e59e3d6340"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    renderSafe
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Render a formatted string after HTML escaping.</p>
    <dl><dt><b>Description</b>:</dt><dd>Render a formatted string of data and then HTML escape. Data packets will be created as required to store the write data. This call may block waiting for data to drain to the client.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">fmt</td><td>Printf style formatted string.</td>
    <tr><td class="param">...</td><td>Arguments for fmt.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaaafafb9657167c8093d9015733dd15e2"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    renderString
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *s)
  </div>
  <div class="apiDetail">
<p>Render a string of data to the client.</p>
    <dl><dt><b>Description</b>:</dt><dd>Render a string of data to the client. Data packets will be created as required to store the write data. This call may block waiting for data to drain to the client.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">s</td><td>String containing the data to write.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga688f12fa155a796f2f35f33cc52d5abb"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    renderVar
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Render the value of a request variable to the client.</p>
If a request parameter is not found by the given name, consult the session store for a variable the same name
    <dl><dt><b>Description</b>:</dt><dd>This writes the value of a request variable after HTML escaping its value.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">name</td><td>Form variable name.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaf0db430f850378bd83c514a0dda77fb9"></a>
<div class="api">
  <div class="prototype">
    void
    renderView
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *view)
  </div>
  <div class="apiDetail">
<p>Render an ESP page to the client.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">view</td><td>View name. The view name is interpreted relative to the matching route documents directory and may omit an ESP extension.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga1d226bb7d309a4586b862d409f53ab9f"></a>
<div class="api">
  <div class="prototype">
    int
    runCmd
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *command, char *input, char **output, char **error, <a href="edi.html#mpr.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> timeout, int flags)
  </div>
  <div class="apiDetail">
<p>Run a command.</p>
    <dl><dt><b>Description</b>:</dt><dd>Run a command and return output.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">command</td><td>Command line and arguments to run.</td>
    <tr><td class="param">input</td><td>Input data to pass to the command. Set to null if not required.</td>
    <tr><td class="param">output</td><td>Pointer to accept command standard output response. Set to null if not required.</td>
    <tr><td class="param">error</td><td>Pointer to accept command standard error response. Set to null if not required.</td>
    <tr><td class="param">flags</td><td>MprCmd flags. Use MPR_CMD_DETACH to run in the background.</td>
    <tr><td class="param">timeout</td><td>Time in milliseconds to wait for the command to complete and exit.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga55805dac6f16fafd2fdc18df732b7b46"></a>
<div class="api">
  <div class="prototype">
    void
    scripts
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *patterns)
  </div>
  <div class="apiDetail">
<p>Render scripts.</p>
    <dl><dt><b>Description</b>:</dt><dd>This renders script elements for all matching filenames on the server.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">patterns</td><td>An enhanced glob-style expression pattern. The format is is a comma separated string of filename expressions. Each expression may contain the wildcard tokens: &quot;*&quot; which matches any filename portion, &quot;**&quot; which matches any filename portion in any subdirectory. An expression may be prefixed with &quot;!&quot; to exclude files of that expression.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Deprecated.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gab3444f174346e0d8e8d4d3a43d451c5e"></a>
<div class="api">
  <div class="prototype">
    void
    securityToken
()
  </div>
  <div class="apiDetail">
<p>Add the security token to the response.</p>
    <dl><dt><b>Description</b>:</dt><dd>To minimize form replay attacks, a security token may be required for POST requests on a route. This call will set a security token in the response as a response header and as a response cookie. Client-side Javascript must then send this token as a request header in subsquent POST requests. To configure a route to require security tokens, call <a class="ref" href="#group___http_route_1ga4b4feabc71a3ad15f2b9d33722a2340b" external="http.dtags">httpSetRouteXsrf</a></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga45c8bf65c9eacac2512533dbc006db2b"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    session
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Get a session state variable.</p>
    <dl><dt><b>Description</b>:</dt><dd>This is a convenient alias for <a class="ref" href="#group___esp_abbrev_1ga241f0cd4f5d49f8a137f1024415b2674">getSessionVar</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">name</td><td>Variable name to get.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The session variable value. Returns NULL if not set.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga3a877e198637c1ec75ff2a53dc8d7ebd"></a>
<div class="api">
  <div class="prototype">
    void
    setConn
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Set the current request connection.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>The HttpConn connection object to define.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gafe8d897ff436eabc6fc275f76222a5c3"></a>
<div class="api">
  <div class="prototype">
    void
    setContentType
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *mimeType)
  </div>
  <div class="apiDetail">
<p>Set the transmission (response) content mime type.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set the mime type Http header in the transmission.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">mimeType</td><td>Mime type string.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaea6086cd23b087b13921a4028940792c"></a>
<div class="api">
  <div class="prototype">
    void
    setCookie
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *domain, <a href="edi.html#mpr.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> lifespan, <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> isSecure)
  </div>
  <div class="apiDetail">
<p>Define a cookie header to send with the response.</p>
The Path, Domain, and Expires properties can be set to null for default values
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">name</td><td>Cookie name.</td>
    <tr><td class="param">value</td><td>Cookie value.</td>
    <tr><td class="param">path</td><td>Uri path to which the cookie applies.</td>
    <tr><td class="param">domain</td><td>String Domain in which the cookie applies. Must have 2-3 &quot;.&quot; and begin with a leading &quot;.&quot;. For example: domain: .example.com Some browsers will accept cookies without the initial &quot;.&quot;, but the spec: (RFC 2109) requires it.</td>
    <tr><td class="param">lifespan</td><td>Lifespan of the cookie in seconds.</td>
    <tr><td class="param">isSecure</td><td>Boolean Set to &quot;true&quot; if the cookie only applies for SSL based connections.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga0e9f5142b6aa4d7c3695ef62a9e348b3"></a>
<div class="api">
  <div class="prototype">
    void
    setData
(void *data)
  </div>
  <div class="apiDetail">
<p>Set a private data reference for the current request.</p>
    <dl><dt>Returns:</dt><dd>Reference to private data.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga6c39fec614ae333bcc5448930ab2dc8d"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *
    setField
(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fieldName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Update a record field without writing to the database.</p>
    <dl><dt><b>Description</b>:</dt><dd>This routine updates the record object with the given value. The record will not be written to the database. To write to the database, use <a class="ref" href="#group___esp_abbrev_1gaac69d2eab0ce7dfea56ac4714d0e6e55">updateRec</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">rec</td><td>Record to update.</td>
    <tr><td class="param">fieldName</td><td>Record field name to update.</td>
    <tr><td class="param">value</td><td>Value to update.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The record instance if successful, otherwise NULL.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaaabf240c427f1f246fadc85535525401"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *
    setFields
(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec, <a href="edi.html#mpr.html#group___mpr_json" class="ref">MprJson</a> *data)
  </div>
  <div class="apiDetail">
<p>Update record fields without writing to the database.</p>
    <dl><dt><b>Description</b>:</dt><dd>This routine updates the record object with the given values. The "data&apos; argument supplies a hash of fieldNames and values. The data hash may come from the request <a class="ref" href="#group___esp_abbrev_1gac880717bdc6e6f631de7c5c95491df53">params</a> or it can be manually created via <a class="ref" href="#group___edi_1gac8ba9b4a0cdc2d2f30de7d915a4c51c1" external="edi.dtags">ediMakeHash</a> to convert a JSON string into an options hash. For example: updateFields(rec, hash(&quot;{ name: &apos;%s&apos;, address: &apos;%s&apos; }&quot;, name, address)) The record will not be written to the database. To write to the database, use <a class="ref" href="#group___edi_1ga9b65a775c4ddc081e49b1a55cabc06aa" external="edi.dtags">ediUpdateRec</a></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">rec</td><td>Record to update.</td>
    <tr><td class="param">data</td><td>Json object of field data.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The record instance if successful, otherwise NULL.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaeed08cdbf64becc6ea822e9208831f63"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *
    setGrid
(<a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *grid)
  </div>
  <div class="apiDetail">
<p>Set the current database grid.</p>
    <dl><dt>Returns:</dt><dd>The grid instance. This permits chaining.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaf4cbdf3eef410884ed0928066d0503f2"></a>
<div class="api">
  <div class="prototype">
    void
    setHeader
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Set a transmission header.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set a Http header to send with the request. If the header already exists, its value is overwritten.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">key</td><td>Http response header key.</td>
    <tr><td class="param">fmt</td><td>Printf style formatted string to use as the header key value.</td>
    <tr><td class="param">...</td><td>Arguments for fmt.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gad58993583c3513dc5ad97e1a8e93e30a"></a>
<div class="api">
  <div class="prototype">
    void
    setIntParam
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, int value)
  </div>
  <div class="apiDetail">
<p>Set an integer request parameter value.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set the value of a named request parameter to an integer value. Form variables are defined via www-urlencoded query or post data contained in the request.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">name</td><td>Name of the request parameter to set.</td>
    <tr><td class="param">value</td><td>Integer value to set.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga7d227ab7fdc91d90a4484550ea9482b8"></a>
<div class="api">
  <div class="prototype">
    void
    setNotifier
(<a href="edi.html#http.html#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a> notifier)
  </div>
  <div class="apiDetail">
<p>Set a notifier callback for the connection.</p>
This wraps httpSetConnNotifier and calls espSetConn before invoking the notifier for connection events
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">notifier</td><td>Callback function.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga65fe2a97ffad029e6229e4e2dd290dd5"></a>
<div class="api">
  <div class="prototype">
    void
    setParam
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Set a request parameter value.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set the value of a named request parameter to a string value. Parameters are defined via requeset POST data or request URI queries. This API permits these initial request parameters to be set or modified.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">name</td><td>Name of the request parameter to set.</td>
    <tr><td class="param">value</td><td>Value to set.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gafef8aa52aab6f3d8a3eebfe7eeb0edf4"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *
    setRec
(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec)
  </div>
  <div class="apiDetail">
<p>Set the current database record.</p>
    <dl><dt><b>Description</b>:</dt><dd>The current record is used to supply data to various abbreviated controls, such as: text(), <a class="ref" href="#group___esp_abbrev_1gaa3f886ac8ecb0b4f2f6decb1da1f5c82">input()</a>, checkbox and dropdown().</dd></dl>
    <dl><dt>Returns:</dt><dd>The grid instance. This permits chaining.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gadb4f7bc3020ab9c481f1ebcaf1ed3f2a"></a>
<div class="api">
  <div class="prototype">
    void
    setSessionVar
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Set a session state variable.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">name</td><td>Variable name to set.</td>
    <tr><td class="param">value</td><td>Value to set.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga63470999d986c7d2d064dc44cdc2fcac"></a>
<div class="api">
  <div class="prototype">
    void
    setStatus
(int status)
  </div>
  <div class="apiDetail">
<p>Set a Http response status.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set the Http response status for the request. This defaults to 200 (OK).</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">status</td><td>Http status code.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga07243a4b521119ce41362163afb45032"></a>
<div class="api">
  <div class="prototype">
    void
    setTimeout
(void *proc, <a href="edi.html#mpr.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> timeout, void *data)
  </div>
  <div class="apiDetail">
<p>Create a timeout event.</p>
    <dl><dt><b>Description</b>:</dt><dd>Invoke the given procedure after the timeout.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">proc</td><td>Function to invoke.</td>
    <tr><td class="param">timeout</td><td>Time in milliseconds to elapse before invoking the timeout.</td>
    <tr><td class="param">data</td><td>Argument to pass to proc.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga70074b92c4e5b0381a6a61f9e0f8e2cc"></a>
<div class="api">
  <div class="prototype">
    void
    showRequest
()
  </div>
  <div class="apiDetail">
<p>Show request details.</p>
    <dl><dt><b>Description</b>:</dt><dd>This echoes request details back to the client. This is useful as a debugging tool.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga61c6ed68dcee1735502c33d2f362d5c7"></a>
<div class="api">
  <div class="prototype">
    void
    stylesheets
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *patterns)
  </div>
  <div class="apiDetail">
<p>Render stylesheets.</p>
    <dl><dt><b>Description</b>:</dt><dd>This renders stylesheet elements for all matching filenames on the server.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">patterns</td><td>An enhanced glob-style expression pattern. The format is is a comma separated string of filename expressions. Each expression may contain the wildcard tokens: &quot;*&quot; which matches any filename portion, &quot;**&quot; which matches any filename portion in any subdirectory. An expression may be prefixed with &quot;!&quot; to exclude files of that expression.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Deprecated.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga71ab6f699454ab16232f98c28a47935c"></a>
<div class="api">
  <div class="prototype">
    void
    updateCache
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *data, int lifesecs)
  </div>
  <div class="apiDetail">
<p>Update the cached content for a request.</p>
    <dl><dt><b>Description</b>:</dt><dd>Save the given content for future requests. This is useful if the caching mode has been set to &quot;manual&quot;.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">uri</td><td>Request URI to cache for.</td>
    <tr><td class="param">data</td><td>Data to cache.</td>
    <tr><td class="param">lifesecs</td><td>Time in seconds to cache the data.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga8aef62e678a3e5602d8dd4b2b85db394"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    updateField
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fieldName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Write a value to a database table field.</p>
    <dl><dt><b>Description</b>:</dt><dd>Update the value of a table field in the selected table row. Note: validations are not run.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">tableName</td><td>Database table name.</td>
    <tr><td class="param">key</td><td>Key value for the table row to update.</td>
    <tr><td class="param">fieldName</td><td>Column name to update.</td>
    <tr><td class="param">value</td><td>Value to write to the database field.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>&quot;true&quot; if the field can be successfully written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga4a1259d2b9cb98ecba45266954ee31e4"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    updateFields
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName, <a href="edi.html#mpr.html#group___mpr_json" class="ref">MprJson</a> *data)
  </div>
  <div class="apiDetail">
<p>Write field values to a database row.</p>
    <dl><dt><b>Description</b>:</dt><dd>This routine updates the current record with the given data and then saves the record to the database. The "data&apos; argument supplies a hash of fieldNames and values. The data hash may come from the request <a class="ref" href="#group___esp_abbrev_1gac880717bdc6e6f631de7c5c95491df53">params</a> or it can be manually created via <a class="ref" href="#group___edi_1gac8ba9b4a0cdc2d2f30de7d915a4c51c1" external="edi.dtags">ediMakeHash</a> to convert a JSON string into an options hash. For example: ediWriteFields(rec, <a class="ref" href="#group___esp_abbrev_1gac880717bdc6e6f631de7c5c95491df53">params()</a>); The record runs field validations before saving to the database.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">tableName</td><td>Database table name.</td>
    <tr><td class="param">data</td><td>Json object of fields to update.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>&quot;true&quot; if the field can be successfully written. Returns false if field validations fail.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1gaac69d2eab0ce7dfea56ac4714d0e6e55"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    updateRec
(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec)
  </div>
  <div class="apiDetail">
<p>Write a record to the database.</p>
    <dl><dt><b>Description</b>:</dt><dd>The record will be saved to the database after running any field validations. If any field validations fail to pass, the record will not be written and error details can be retrieved via <a class="ref" href="#group___edi_1ga653dfa35de74e1c3049b3ba9191215e0" external="edi.dtags">ediGetRecErrors</a>. If the record is a new record and the &quot;id&quot; column is EDI_AUTO_INC, then the &quot;id&quot; will be assigned prior to saving the record. If the update succeeds, the feedback message {inform: &quot;Saved Record&quot;} will be created. If the update fails, a feedback message {error: &quot;Cannot save Record&quot;} will be created.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">rec</td><td>Record to write to the database.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>&quot;true&quot; if the record can be successfully written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga443a4d955b4cd2ea70b904ff75d9f06f"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    updateRecFromParams
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *table)
  </div>
  <div class="apiDetail">
<p>Update a record from the request parameters.</p>
    <dl><dt><b>Description</b>:</dt><dd>The record identified by the params(id) is read and updated with the request parameters.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">table</td><td>Database table to update.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the update is successful.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<a name="group___esp_abbrev_1ga78e593db4bd2c434476b90c5b99a17ca"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    uri
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target, ...)
  </div>
  <div class="apiDetail">
<p>Create a URI link.</p>
\par \b Description:
Create a URI link based on a given target an expanding embedded tokens based on the current request and route state. The target URI parameter may contain partial or complete URI information. The missing parts are supplied using the current request and route tables
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">target</td><td>The URI target. The target parameter can be a URI string or JSON style set of options. The target will have any embedded &quot;{tokens}&quot; expanded by using token values from the request parameters. If the target has an absolute URI path, that path is used directly after tokenization. If the target begins with &quot;~&quot;, that character will be replaced with the route prefix. This is a very convenient way to create application top-level relative links. <br/><br/>
 If the target is a string that begins with &quot;{AT}&quot; it will be interpreted as a service/action pair of the form &quot;{AT}Service/action&quot;. If the &quot;service/&quot; portion is absent, the current service is used. If the action component is missing, the &quot;list&quot; action is used. A bare &quot;{AT}&quot; refers to the &quot;list&quot; action of the current service. <br/><br/>
 If the target starts with &quot;{&quot; it is interpreted as being a JSON style set of options that describe the link. If the target is a relative URI path, it is appended to the current request URI path. <br/><br/>
 If the is a JSON style of options, it can specify the URI components: scheme, host, port, path, reference and query. If these component properties are supplied, these will be combined to create a URI. <br/><br/>
 If the target specifies either a service/action or a JSON set of options, The URI will be created according to the route URI template. The template may be explicitly specified via a &quot;route&quot; target property. Otherwise, if an &quot;action&quot; property is specified, the route of the same name will be used. If these don&apos;t result in a usable route, the &quot;default&quot; route will be used. <br/><br/>
 These are the properties supported in a JSON style &quot;{ ... }&quot; target: <ul><li>scheme String URI scheme portion </li><li>host String URI host portion </li><li>port Number URI port number </li><li>path String URI path portion </li><li>reference String URI path reference. Does not include &quot;#&quot; </li><li>query String URI query parameters. Does not include &quot;?&quot; </li><li>service String Service name if using a Service-based route. This can also be specified via the action option. </li><li>action String Action to invoke. This can be a URI string or a Service action of the form {AT}Service/action. </li><li>route String Route name to use for the URI template </li></ul></td>
    <tr><td class="param">...</td><td>arguments to the formatted target string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A normalized Uri string.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>Remarks:</dt><dd>Examples:<pre>
    uri(&quot;http://example.com/index.html&quot;);
    uri(&quot;/path/to/index.html&quot;);
    uri(&quot;../images/splash.png&quot;);
    uri(&quot;~/static/images/splash.png&quot;);
    uri(&quot;${app}/static/images/splash.png&quot;);
    uri(&quot;@service/checkout&quot;);
    uri(&quot;@service/&quot;)               //  Service = Service, action = index
    uri(&quot;@init&quot;)                   //  Current service, action = init
    uri(&quot;@&quot;)                       //  Current service, action = index
    uri(&quot;{ action: &apos;@post/create&apos; }&quot;);
    uri(&quot;{ action: &apos;checkout&apos; }&quot;);
    uri(&quot;{ action: &apos;logout&apos;, service: &apos;admin&apos; }&quot;);
    uri(&quot;{ action: &apos;admin/logout&apos;&quot;);
    uri(&quot;{ product: &apos;candy&apos;, quantity: &apos;10&apos;, template: &apos;/cart/${product}/${quantity}&apos; }&quot;);
    uri(&quot;{ route: &apos;~/STAR/edit&apos;, action: &apos;checkout&apos;, id: &apos;99&apos; }&quot;);
    uri(&quot;{ template: &apos;~/static/images/${theme}/background.jpg&apos;, theme: &apos;blue&apos; }&quot;);
</pre></dd></dl>
    <dl><dt>See Also:</dt><dd>
    </dd></dl>
  </div>
</div>
<h1>EspParse</h1>
<a name="group___esp_parse"></a>
<div class="api">
  <div class="prototype">EspParse</div>
  <div class="apiDetail">
<p>ESP page parser structure.</p>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<h1>EspReq</h1>
<a name="group___esp_req"></a>
<div class="api">
  <div class="prototype">EspReq</div>
  <div class="apiDetail">
<p>ESP request structure.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int</td><td><td>autoFinalize</td><td>
Request is or will be auto-finalized.
</td>
    <tr><td class="param">cchar *</td><td><td>commandLine</td><td>
Command line for compile/link.
</td>
    <tr><td class="param">void *</td><td><td>data</td><td>
Custom data for request (managed).
</td>
    <tr><td class="param">Edi *</td><td><td>edi</td><td>
Database for this request.
</td>
    <tr><td class="param"><a class="ref" href="#struct_esp">Esp</a> *</td><td><td>esp</td><td>
Convenient esp reference.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>feedback</td><td>
Feedback messages.
</td>
    <tr><td class="param">int</td><td><td>lastDomID</td><td>
Last generated DOM ID.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>lastFeedback</td><td>
Feedback messages from the last request.
</td>
    <tr><td class="param"><a class="ref" href="#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" external="http.dtags">HttpNotifier</a></td><td><td>notifier</td><td>
Connection Http state change notification callback.
</td>
    <tr><td class="param">HttpRoute *</td><td><td>route</td><td>
Route reference.
</td>
    <tr><td class="param">int</td><td><td>sessionProbed</td><td>
Already probed for session store.
</td>
    <tr><td class="param">void *</td><td><td>staticData</td><td>
Custom data for request (unmanaged).
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaae88740666af5ee9b21ad39648857db8"></a>
<div class="api">
  <div class="prototype">
    void
    espAddHeader
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Add a header to the transmission using a format string.</p>
    <dl><dt><b>Description</b>:</dt><dd>Add a header if it does not already exist.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">key</td><td>Http response header key.</td>
    <tr><td class="param">fmt</td><td>Printf style formatted string to use as the header key value.</td>
    <tr><td class="param">...</td><td>Arguments for fmt.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code. Returns MPR_ERR_ALREADY_EXISTS if the header already exists.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gad772b64162b7f4eb80ef1a3a1795175d"></a>
<div class="api">
  <div class="prototype">
    void
    espAddHeaderString
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Add a header to the transmission.</p>
    <dl><dt><b>Description</b>:</dt><dd>Add a header if it does not already exist.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">key</td><td>Http response header key.</td>
    <tr><td class="param">value</td><td>Value to set for the header.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code. Returns MPR_ERR_ALREADY_EXISTS if the header already exists.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga9e1210b2a79fcbf13a85d2f78ccdb0bd"></a>
<div class="api">
  <div class="prototype">
    void
    espAddParam
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Add a request parameter value if it is not already defined.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">var</td><td>Name of the request parameter to set.</td>
    <tr><td class="param">value</td><td>Value to set.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaa50588be6fe69e04738fc0276d7afbbb"></a>
<div class="api">
  <div class="prototype">
    void
    espAppendHeader
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Append a transmission header.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set the header if it does not already exist. Append with a &quot;, &quot; separator if the header already exists.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">key</td><td>Http response header key.</td>
    <tr><td class="param">fmt</td><td>Printf style formatted string to use as the header key value.</td>
    <tr><td class="param">...</td><td>Arguments for fmt.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gacb696dcdff91355fc9df37f5c7171a01"></a>
<div class="api">
  <div class="prototype">
    void
    espAppendHeaderString
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Append a transmission header string.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set the header if it does not already exist. Append with a &quot;, &quot; separator if the header already exists.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">key</td><td>Http response header key.</td>
    <tr><td class="param">value</td><td>Value to set for the header.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gab6aeea9bb5cb500eabf3e1cfd1745f03"></a>
<div class="api">
  <div class="prototype">
    void
    espAutoFinalize
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Auto-finalize transmission of the http request.</p>
    <dl><dt><b>Description</b>:</dt><dd>If auto-finalization is enabled via <a class="ref" href="#group___esp_req_1ga54f5ce21966922b0883d1942ccbeae8d">espSetAutoFinalizing</a>, this call will finalize writing Http response data by writing the final chunk trailer if required. If using chunked transfers, a null chunk trailer is required to signify the end of write data. If the request is already finalized, this call does nothing.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gad47b01dcb2ca01085b18fce4636a8a8d"></a>
<div class="api">
  <div class="prototype">
    void
    espClearCurrentSession
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Clear the current authenticated session.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gafa8b3b579ec913aa905ec9c173571059"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espCreateSession
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Create a session state object.</p>
    <dl><dt><b>Description</b>:</dt><dd>The session state object can be used to share state between requests. If a session has not already been created, this call will create a new session. It will create a response cookie containing a session ID that will be sent to the client with the response. Note: Objects are stored in the session state using JSON serialization.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Session ID string.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaf6d82157def054f3c2c38b96f15872ce"></a>
<div class="api">
  <div class="prototype">
    void
    espDestroySession
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Destroy a session state object.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will destroy the server-side session state and emit an expired cookie to the client to force it to erase the session cookie.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gac142434246bc5558dfe73a78ded7a7f0"></a>
<div class="api">
  <div class="prototype">
    void
    espFinalize
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Indicate the request is finalized.</p>
    <dl><dt><b>Description</b>:</dt><dd>Calling this routine indicates that the handler has fully finished processing the request including processing all input, generating a full response and any other required processing. This call will invoke <a class="ref" href="#group___http_tx_1ga49edf0602dd2143b518c247f9cee8720" external="http.dtags">httpFinalizeOutput</a> and then set the request finalized flag. If the request is already finalized, this call does nothing. A handler MUST call httpFinalize when it has completed processing a request. As background: there are three finalize concepts: HttpTx.finalizedOutput means the handler has generated all the response output but it may not yet be fully transmited through the pipeline and to the network by the connector. HttpTx.finalizedConnector means the connector has sent all the output to the network. HttpTx.finalized means the application has fully processed the request including reading all the input data it wishes to read and has generated all the output that will be generated. A fully finalized request has both HttpTx.finalized and HttpTx.finalizedConnector true.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gadf50b51bf7ab10d828e85be140c005c5"></a>
<div class="api">
  <div class="prototype">
    void
    espFlush
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Flush transmit data.</p>
    <dl><dt><b>Description</b>:</dt><dd>This writes any buffered data.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga71e492b0a2ad58a5eb75616556da4f92"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#http.html#group___http_auth" class="ref">HttpAuth</a> *
    espGetAuth
()
  </div>
  <div class="apiDetail">
<p>Get the current route HttpAuth object.</p>
    <dl><dt>Returns:</dt><dd>The HttpAuth object.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga41a42035766ff5d2fd0fd74588e167ea"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *
    espGetConn
()
  </div>
  <div class="apiDetail">
<p>Get the current request connection.</p>
    <dl><dt>Returns:</dt><dd>The HttpConn connection object.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga3cb308121f5659d48f58c217959c3800"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#mpr.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a>
    espGetContentLength
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the receive body content length.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the length of the receive body content (if any). This is used in servers to get the length of posted data and, in clients, to get the response body length.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the response content data in bytes.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gadf281290e500c98b3c7214c410b32599"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetContentType
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the receive body content type.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the content mime type of the receive body content (if any).</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Mime type of any receive content. Set to NULL if not posted data.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga355cd184340dfdc35d7ab291e75e56e7"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetCookie
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Get a request cookie.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the cookie for the given name.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">name</td><td>Cookie name to retrieve.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The cookie value Return null if the cookie is not defined.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga1c47b7c05e41bc39b9f3426134c1bf7c"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetCookies
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the request cookies.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the cookies defined in the current request. This returns the HTTP cookies header with all cookies in one string.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Return a string containing the cookies sent in the Http header of the last request.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga65d11f787b22a5deda37f8d53f479c56"></a>
<div class="api">
  <div class="prototype">
    void *
    espGetData
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the private data reference for the current request set via <a class="ref" href="#group___esp_abbrev_1ga0e9f5142b6aa4d7c3695ef62a9e348b3">setData</a></p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Reference to private data.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gadb72373974f7f4d05a8dbbdf966c6496"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi" class="ref">Edi</a> *
    espGetDatabase
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the current database instance.</p>
    <dl><dt><b>Description</b>:</dt><dd>A route may have a default database configured via the EspDb Appweb.conf configuration directive. The database will be opened when the web server initializes and will be shared between all requests using the route.</dd></dl>
    <dl><dt>Returns:</dt><dd>Edi EDI database handle.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaf694aade2329f4c9dcb7c6d5a77e62c1"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetDocuments
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the default documents directory for the request route.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A directory path name.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaefe462fb7ee0c6fa6a0c7842b973de3c"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___esp_route" class="ref">EspRoute</a> *
    espGetEspRoute
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the current extended route information.</p>
    <dl><dt>Returns:</dt><dd>EspRoute instance.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga307d1d071150431efd74a1450ed095ce"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetFeedback
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *type)
  </div>
  <div class="apiDetail">
<p>Get a feedback message defined via <a class="ref" href="#group___esp_abbrev_1gac782d72d3f7c11dce5c48befaff8ac0a">feedback</a></p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn object.</td>
    <tr><td class="param">type</td><td>type of feedback message to retrieve. This may be set to any word, but the following feedback types are typically supported as per RFC 5424: &quot;debug&quot;, &quot;info&quot;, &quot;notice&quot;, &quot;warn&quot;, &quot;error&quot;, &quot;critical&quot;.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Reference to the feedback message.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga440de6fba35ad0513c2925f11a0f3710"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *
    espGetGrid
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the current database grid.</p>
    <dl><dt><b>Description</b>:</dt><dd>The current grid is defined via <a class="ref" href="#group___esp_abbrev_1gaeed08cdbf64becc6ea822e9208831f63">setGrid</a></dd></dl>
    <dl><dt>Returns:</dt><dd>EdiGrid instance.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Deprecated.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaddf870926cbeee2779b687522d5db0aa"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetHeader
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)
  </div>
  <div class="apiDetail">
<p>Get an rx http header.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get a http response header for a given header key.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">key</td><td>Name of the header to retrieve. This should be a lower case header name. For example: &quot;Connection&quot;.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Value associated with the header key or null if the key did not exist in the response.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga8daa40cd83a356ad1b1b940751b1df00"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#mpr.html#struct_mpr_hash" class="ref">MprHash</a> *
    espGetHeaderHash
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the hash table of rx Http headers.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the internal hash table of rx headers.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Hash table. See <a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> for how to access the hash table.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga8b03cbaba01462fb4a7349c9d02fddf3"></a>
<div class="api">
  <div class="prototype">
    char *
    espGetHeaders
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get all the request http headers.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get all the rx headers. The returned string formats all the headers in the form: key: value\nkey2: value2\n.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>String containing all the headers. The caller must free this returned string.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga91bd6b5ad25cefe913aa6ebfe43fa928"></a>
<div class="api">
  <div class="prototype">
    int
    espGetIntParam
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, int defaultValue)
  </div>
  <div class="apiDetail">
<p>Get a request pararmeter as an integer.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the value of a named request parameter as an integer. Form variables are defined via www-urlencoded query or post data contained in the request.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">var</td><td>Name of the request parameter to retrieve.</td>
    <tr><td class="param">defaultValue</td><td>Default value to return if the variable is not defined. Can be null.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Integer containing the request parameter&apos;s value.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga4c81c8e4e35c7a3001473462ccd3bbf6"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetMethod
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the HTTP method.</p>
    <dl><dt><b>Description</b>:</dt><dd>This is a convenience API to return the Http method.</dd></dl>
    <dl><dt>Returns:</dt><dd>The HttpConn.rx.method property.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga98e63a9a924ec667a3c1b540e56792d3"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetParam
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *defaultValue)
  </div>
  <div class="apiDetail">
<p>Get a request parameter.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the value of a named request parameter. Form variables are defined via www-urlencoded query or post data contained in the request.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">var</td><td>Name of the request parameter to retrieve.</td>
    <tr><td class="param">defaultValue</td><td>Default value to return if the variable is not defined. Can be null.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>String containing the request parameter&apos;s value. Caller should not free.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga32cf20e26c01dd271c2ae52d16796154"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#mpr.html#group___mpr_json" class="ref">MprJson</a> *
    espGetParams
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the request parameter hash table.</p>
    <dl><dt><b>Description</b>:</dt><dd>This call gets the params hash table for the current request. Route tokens, request query data, and www-url encoded form data are all entered into the params table after decoding. Use <a class="ref" href="#group___mpr_hash_1ga28eaf688ae47d09abd9552fe003cedbb" external="mpr.dtags">mprLookupKey</a> to retrieve data from the table.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>MprJson instance containing the request parameters.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaf5c02acc34944a568e7959bbe321e85a"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetPath
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the request URI path string.</p>
    <dl><dt><b>Description</b>:</dt><dd>This is a convenience API to return the request URI path. This is the request URI path after removing query parameters. It does not include the application route prefix.</dd></dl>
    <dl><dt>Returns:</dt><dd>The <a class="ref" href="#group___esp_req_1ga41a42035766ff5d2fd0fd74588e167ea">espGetConn()</a>-&gt;rx-&gt;pathInfo.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaf84aa1df39869744c4e0ac87e99f1a89"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetQueryString
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the request query string.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get query string sent with the current request.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>String containing the request query string. Caller should not free.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga400095fc3f1743660baedac7c95ff53c"></a>
<div class="api">
  <div class="prototype">
    char *
    espGetReferrer
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the referring URI.</p>
    <dl><dt><b>Description</b>:</dt><dd>This returns the referring URI as described in the HTTP &quot;referer&quot; (yes the HTTP specification does spell it incorrectly) header. If this header is not defined, this routine will return the home URI as returned by uri(&quot;~&quot;).</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>String URI back to the referring URI. If no referrer is defined, refers to the home URI.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga769c951ecdea1f7ab0666eb54e5419df"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *
    espGetRoute
()
  </div>
  <div class="apiDetail">
<p>Get the current route HttpRoute object.</p>
    <dl><dt>Returns:</dt><dd>The HttpRoute object.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga72246c1dc89e871ec596ae0959077af2"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi" class="ref">Edi</a> *
    espGetRouteDatabase
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)
  </div>
  <div class="apiDetail">
<p>Get the default database defined on a route.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Database instance object.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga6517bb2ea40e6c3725c3b689f66894c8"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetRouteVar
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var)
  </div>
  <div class="apiDetail">
<p>Get a route variable.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the value of a request route variable.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">var</td><td>Name of the request parameter to retrieve.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>String containing the route variable value. Caller should not free.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga63a13780299e2781dca728d4087165bb"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetSessionID
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, int create)
  </div>
  <div class="apiDetail">
<p>Get the session state ID.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will get the session and return the session ID. This will create a new session state storage area if create is true and one does not already exist. This can be used to test if the session state exists for this connection.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">create</td><td>Set to true to create a new session if one does not already exist.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The session state identifier string.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga4323100f7ccf0a198b0ee2593749fe5e"></a>
<div class="api">
  <div class="prototype">
    int
    espGetStatus
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the response status.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An integer Http response code. Typically 200 is success.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gad4631deeb02544938b8590806ae8bb8e"></a>
<div class="api">
  <div class="prototype">
    char *
    espGetStatusMessage
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the Http response status message.</p>
    <dl><dt><b>Description</b>:</dt><dd>The HTTP status message is supplied on the first line of the HTTP response.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A Http status message.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga71aeaa3e8171c1cc2cdfe7d7b872156b"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#mpr.html#group___mpr_list" class="ref">MprList</a> *
    espGetUploads
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the uploaded files.</p>
    <dl><dt><b>Description</b>:</dt><dd>Get the list of uploaded files. This list entries are HttpUploadFile objects.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A list of HttpUploadFile objects.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaba2676d2009310d3fca8f22a16efbf60"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetUri
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Get the request URI string.</p>
    <dl><dt><b>Description</b>:</dt><dd>This is a convenience API to return the request URI. This is the request URI after removing query parameters. It includes any application route prefix.</dd></dl>
    <dl><dt>Returns:</dt><dd>The <a class="ref" href="#group___esp_req_1ga41a42035766ff5d2fd0fd74588e167ea">espGetConn()</a>-&gt;rx-&gt;uri.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gacfd0fe0f0edb952cd670564ac47febc4"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    espHasGrid
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Test if a current grid has been defined.</p>
    <dl><dt>Returns:</dt><dd>&quot;True&quot; if a current grid has been defined.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Deprecated.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga0f7bf9745f2331aebb05069bba6ba356"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    espHasRec
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Test if a current record has been defined and save to the database.</p>
    <dl><dt><b>Description</b>:</dt><dd>This call returns &quot;true&quot; if a current record is defined and has been saved to the database with a valid &quot;id&quot; field.</dd></dl>
    <dl><dt>Returns:</dt><dd>&quot;True&quot; if a current record with a valid &quot;id&quot; is defined.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Deprecated.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gab41302669720bac29959211f2560797a"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    espIsCurrentSession
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Test if the connection is being made on behalf of the current, single authenticated user.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set esp.login.single to true to enable current session tracking.</dd></dl>
    <dl><dt>Returns:</dt><dd>True if the.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gac50e125f397c0dce5072fab8f551cd32"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    espIsEof
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Test if the receive input stream is at end-of-file.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>&quot;True&quot; if there is no more receive data to read.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga610467cde893472908e6c25bde472fc4"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    espIsFinalized
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Test if the request has been finalized.</p>
    <dl><dt><b>Description</b>:</dt><dd>This tests if <a class="ref" href="#group___esp_req_1gac142434246bc5558dfe73a78ded7a7f0">espFinalize</a> or <a class="ref" href="#group___http_tx_1ga279ad49e5163402e2afd6caf478bcc70" external="http.dtags">httpFinalize</a> has been called for a request.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>&quot;True&quot; if the request has been finalized.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gab216150d5432ef9465462e8e69f5f31f"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    espIsSecure
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Test if the connection is using SSL and is secure.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>&quot;True&quot; if the connection is using SSL.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gacc2fb39132dab5f624a0f026d2e73440"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    espMatchParam
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Match a request parameter with an expected value.</p>
    <dl><dt><b>Description</b>:</dt><dd>Compare a request parameter and return &quot;true&quot; if it exists and its value matches.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">var</td><td>Name of the request parameter.</td>
    <tr><td class="param">value</td><td>Expected value to match.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>&quot;True&quot; if the value matches.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga84d7deb907925e1de92294aad5a57ee8"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *
    espReadTable
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *tableName)
  </div>
  <div class="apiDetail">
<p>Read a table from the current database.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">tableName</td><td>Database table name.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An EDI grid containing data for the table.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga64f9ab9cb2c3c8b0f7f580cb22e45ce5"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espReceive
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, char *buf, <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)
  </div>
  <div class="apiDetail">
<p>Read receive body content.</p>
Use httpReadBlock for more options to read data
    <dl><dt><b>Description</b>:</dt><dd>Read body content from the client. This call does not block.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">buf</td><td>Buffer to accept content data.</td>
    <tr><td class="param">size</td><td>Size of the buffer.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of bytes read into the buffer.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga2b1dc5b4a688fc1062395d6420e85ef9"></a>
<div class="api">
  <div class="prototype">
    void
    espRedirect
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, int status, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target)
  </div>
  <div class="apiDetail">
<p>Redirect the client.</p>
    <dl><dt><b>Description</b>:</dt><dd>Redirect the client to a new uri.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">status</td><td>Http status code to send with the response.</td>
    <tr><td class="param">target</td><td>New target uri for the client.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaaf5114ed096b363628229ea0ae0f94c3"></a>
<div class="api">
  <div class="prototype">
    void
    espRedirectBack
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Redirect the client back to the referrer.</p>
    <dl><dt><b>Description</b>:</dt><dd>Redirect the client to the referring URI.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga5a80980e6392bbc981cb03f5a4f59cd6"></a>
<div class="api">
  <div class="prototype">
    void
    espRemoveCookie
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Remove a cookie.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">name</td><td>Cookie name.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga8743524e4c8aff73135e0ad6f2d44d7c"></a>
<div class="api">
  <div class="prototype">
    int
    espRemoveHeader
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key)
  </div>
  <div class="apiDetail">
<p>Remove a header from the transmission.</p>
    <dl><dt><b>Description</b>:</dt><dd>Remove a header if present.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">key</td><td>Http response header key.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaa0ec215ce461623736d45abb44697fba"></a>
<div class="api">
  <div class="prototype">
    void
    espRemoveSessionVar
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Remove a session state variable.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">name</td><td>Variable name to set.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaa833750f16375fa479d0fcc22dfc2169"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espRender
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Render a formatted string.</p>
    <dl><dt><b>Description</b>:</dt><dd>Render a formatted string of data into packets to the client. Data packets will be created as required to store the write data. This call may block waiting for data to drain to the client.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">fmt</td><td>Printf style formatted string.</td>
    <tr><td class="param">...</td><td>Arguments for fmt.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gae1fa564a4b89afb64df3d9681973e1bf"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espRenderBlock
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *buf, <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a> size)
  </div>
  <div class="apiDetail">
<p>Render a block of data to the client.</p>
    <dl><dt><b>Description</b>:</dt><dd>Render a block of data to the client. Data packets will be created as required to store the write data.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">buf</td><td>Buffer containing the write data.</td>
    <tr><td class="param">size</td><td>Size of the data in buf.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga94594750521ce6621691dcec43a2d670"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espRenderCached
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Render cached content.</p>
    <dl><dt><b>Description</b>:</dt><dd>Render the saved, cached response from a prior request to this URI. This is useful if the caching mode has been set to &quot;manual&quot;.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga0089c449429cb9e4021acbc82ee80177"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espRenderConfig
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Render the client configuration string in JSON.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>PRototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaf20a43f48bfe4741cc6bb9f2877932b1"></a>
<div class="api">
  <div class="prototype">
    void
    espRenderDocument
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)
  </div>
  <div class="apiDetail">
<p>Render an ESP document.</p>
    <dl><dt><b>Description</b>:</dt><dd>If the document is an ESP page, it will be rendered as a view via <a class="ref" href="#group___esp_req_1gaf20a43f48bfe4741cc6bb9f2877932b1">espRenderDocument</a>. Otherwise, it will be rendered using the fileHandler as a static document.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>Http connection object.</td>
    <tr><td class="param">path</td><td>Relative pathname from route-&gt;documents to the document to render.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaf5951884b79343ba98eb53b8c2d28a4f"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espRenderError
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, int status, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Render an error message back to the client and finalize the request.</p>
The output is Html escaped for security
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">status</td><td>Http status code.</td>
    <tr><td class="param">fmt</td><td>Printf style message format.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga543bb9b12ee3f064a730a47164feac0d"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espRenderFile
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)
  </div>
  <div class="apiDetail">
<p>Render the contents of a file back to the client.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">path</td><td>File path name.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga53ad9ef2ea042b04db7307acde5ebf02"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espRenderSafe
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Render a formatted string after HTML escaping.</p>
    <dl><dt><b>Description</b>:</dt><dd>Render a formatted string of data and then HTML escape. Data packets will be created as required to store the write data. This call may block waiting for data to drain to the client.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">fmt</td><td>Printf style formatted string.</td>
    <tr><td class="param">...</td><td>Arguments for fmt.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga743eec6372aeb305a939bc9b0026281e"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espRenderSafeString
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *s)
  </div>
  <div class="apiDetail">
<p>Render a safe string of data to the client.</p>
    <dl><dt><b>Description</b>:</dt><dd>HTML escape a string and then write the string of data to the client. Data packets will be created as required to store the write data. This call may block waiting for the data to the client to drain.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">s</td><td>String containing the data to write.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga2bc125ce68d2a8a8992228f0232c9b6f"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espRenderString
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *s)
  </div>
  <div class="apiDetail">
<p>Render a string of data to the client.</p>
    <dl><dt><b>Description</b>:</dt><dd>Render a string of data to the client. Data packets will be created as required to store the write data. This call may block waiting for data to drain to the client.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">s</td><td>String containing the data to write.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gad0c3cc923d09313ed81476b74c32ab00"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espRenderVar
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Render the value of a request variable to the client.</p>
If a request parameter is not found by the given name, consult the session store for a variable the same name
    <dl><dt><b>Description</b>:</dt><dd>This writes the value of a request variable after HTML escaping its value.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">name</td><td>Form variable name.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaef2c8a287bbbd155ceeb919f281e8e5b"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    espRenderView
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *view, int flags)
  </div>
  <div class="apiDetail">
<p>Render an ESP view page to the client.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>Http connection object.</td>
    <tr><td class="param">view</td><td>View name. The view name is interpreted relative to the matching route documents directory and may omit an ESP extension.</td>
    <tr><td class="param">flags</td><td>Reserved. Set to zero.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if a vew can be rendered.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaed0422d33553efa73195661fd80efaee"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espSendGrid
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *grid, int flags)
  </div>
  <div class="apiDetail">
<p>Send a database grid as a JSON string.</p>
    <dl><dt><b>Description</b>:</dt><dd>The JSON string is rendered as part of an enclosing &quot;{ data: JSON }&quot; wrapper.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">grid</td><td>EDI grid.</td>
    <tr><td class="param">flags</td><td>Reserved. Set to zero.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Number of bytes rendered.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga1ba6eef08895cd89005dd96262d1cd53"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espSendRec
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec, int flags)
  </div>
  <div class="apiDetail">
<p>Send a database record as a JSON string.</p>
    <dl><dt><b>Description</b>:</dt><dd>The JSON string is rendered as part of an enclosing &quot;{ data: JSON }&quot; wrapper.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">rec</td><td>EDI record.</td>
    <tr><td class="param">flags</td><td>Reserved. Set to zero.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Number of bytes rendered.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gabc11971fcd5d12fe7a9907b2c564781b"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espSendResult
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> success)
  </div>
  <div class="apiDetail">
<p>Send a JSON response result.</p>
    <dl><dt><b>Description</b>:</dt><dd>This renders a JSON response including the request success status, feedback message and field errors. The field errors apply to the current EDI record. The format of the response is: &quot;{ success: STATUS, feedback: {messages}, fieldErrors: {messages}}&quot; wrapper. The feedback messages are created via the espSetFeedback API. Field errors are created by ESP validations.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">success</td><td>True if the operation was a success.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Number of bytes sent.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga54f5ce21966922b0883d1942ccbeae8d"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    espSetAutoFinalizing
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> on)
  </div>
  <div class="apiDetail">
<p>Enable auto-finalizing for this request.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">on</td><td>Set to &quot;true&quot; to enable auto-finalizing.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>&quot;True&quot; if auto-finalizing was enabled prior to this call.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga6ea189a01c1c680e3f5d77396b3bd3a8"></a>
<div class="api">
  <div class="prototype">
    void
    espSetConn
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Set the current request connection.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>The HttpConn connection object to define.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gae9b3e3ddb3bf784d77cba59045dfeb81"></a>
<div class="api">
  <div class="prototype">
    void
    espSetContentLength
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#mpr.html#mpr_8h_1a87e9f435008723c7b1489af1944c6e20" class="ref">MprOff</a> length)
  </div>
  <div class="apiDetail">
<p>Define a content length header in the transmission.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will define a &quot;Content-Length: NNN&quot; request header.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">length</td><td>Numeric value for the content length header.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga7bb7c062a2fb64c1756c93dc79481c2c"></a>
<div class="api">
  <div class="prototype">
    void
    espSetContentType
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *mimeType)
  </div>
  <div class="apiDetail">
<p>Set the transmission (response) content mime type.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set the mime type Http header in the transmission.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">mimeType</td><td>Mime type string.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga58039e1fafe24481848bf1b47a2d444f"></a>
<div class="api">
  <div class="prototype">
    void
    espSetCookie
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *domain, <a href="edi.html#mpr.html#mpr_8h_1adbceeccda24c35e7b4c6090db7065319" class="ref">MprTicks</a> lifespan, <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> isSecure)
  </div>
  <div class="apiDetail">
<p>Set a cookie in the transmission.</p>
    <dl><dt><b>Description</b>:</dt><dd>Define a cookie to send in the transmission Http header.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">name</td><td>Cookie name.</td>
    <tr><td class="param">value</td><td>Cookie value.</td>
    <tr><td class="param">path</td><td>URI path to which the cookie applies.</td>
    <tr><td class="param">domain</td><td>String Domain in which the cookie applies. Must have 2-3 &quot;.&quot; and begin with a leading &quot;.&quot;. For example: domain: .example.com. Set to NULL to use the current connection&apos;s client domain. Some browsers will accept cookies without the initial &quot;.&quot;, but the spec: (RFC 2109) requires it.</td>
    <tr><td class="param">lifespan</td><td>Duration for the cookie to persist in msec. Set to a negative number to delete a cookie. Set to zero for a &quot;session&quot; cookie that lives only for the user&apos;s session.</td>
    <tr><td class="param">isSecure</td><td>Set to &quot;true&quot; if the cookie only applies for SSL based connections.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga3311af6602f80872182db7112b832f5e"></a>
<div class="api">
  <div class="prototype">
    void
    espSetCurrentSession
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Set this authenticated session as the current session.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set esp.login.single to true to enable current session tracking.</dd></dl>
    <dl><dt>Returns:</dt><dd>True if the.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga12f466c3ea4ae6e7eb2692c80e03a45b"></a>
<div class="api">
  <div class="prototype">
    void
    espSetFeedback
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *type, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Set a feedback message.</p>
    <dl><dt><b>Description</b>:</dt><dd>Feedback messages are a convenient way to aggregate messages state information in the response. Feedback messages are removed at the completion of the request.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>Http connection object.</td>
    <tr><td class="param">type</td><td>type of feedback message. This may be set to any word, but the following feedback types are typically supported as per RFC 5424: &quot;debug&quot;, &quot;info&quot;, &quot;notice&quot;, &quot;warn&quot;, &quot;error&quot;, &quot;critical&quot;.</td>
    <tr><td class="param">fmt</td><td>Printf style formatted string to use as the message.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga7508b46ff71aa46719836d2720840047"></a>
<div class="api">
  <div class="prototype">
    void
    espSetFeedbackv
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *type, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, va_list args)
  </div>
  <div class="apiDetail">
<p>Send a feedback message.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>Http connection object.</td>
    <tr><td class="param">type</td><td>type of feedback message. This may be set to any word, but the following feedback types are typically supported as per RFC 5424: &quot;debug&quot;, &quot;info&quot;, &quot;notice&quot;, &quot;warn&quot;, &quot;error&quot;, &quot;critical&quot;.</td>
    <tr><td class="param">fmt</td><td>Printf style formatted string to use as the message.</td>
    <tr><td class="param">args</td><td>Varargs style list.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Internal.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga6e09b2658067694a86d1535bf56aebae"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *
    espSetGrid
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *grid)
  </div>
  <div class="apiDetail">
<p>Set the current database grid.</p>
    <dl><dt>Returns:</dt><dd>The grid instance. This permits chaining.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga66c536436b8a99612b1ce571c315b39b"></a>
<div class="api">
  <div class="prototype">
    void
    espSetHeader
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *fmt, ...)
  </div>
  <div class="apiDetail">
<p>Set a transmission header.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set a Http header to send with the request. If the header already exists, its value is overwritten.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">key</td><td>Http response header key.</td>
    <tr><td class="param">fmt</td><td>Printf style formatted string to use as the header key value.</td>
    <tr><td class="param">...</td><td>Arguments for fmt.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gafcb200922fb98165c0485348ea640d01"></a>
<div class="api">
  <div class="prototype">
    void
    espSetHeaderString
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Set a simple key/value transmission header.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set a Http header to send with the request. If the header already exists, its value is overwritten.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">key</td><td>Http response header key.</td>
    <tr><td class="param">value</td><td>String value for the key.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga3d21ff0ee522ae25885378e8cb55d1e9"></a>
<div class="api">
  <div class="prototype">
    void
    espSetIntParam
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, int value)
  </div>
  <div class="apiDetail">
<p>Set an integer request parameter value.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set the value of a named request parameter to an integer value. Form variables are defined via www-urlencoded query or post data contained in the request.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">var</td><td>Name of the request parameter to set.</td>
    <tr><td class="param">value</td><td>Value to set.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga0ea346bbee09c401e90f0b908e7476ba"></a>
<div class="api">
  <div class="prototype">
    void
    espSetNotifier
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#http.html#group___http_conn_1ga8fb2928970b39c76fd14a7cd6d01badb" class="ref">HttpNotifier</a> notifier)
  </div>
  <div class="apiDetail">
<p>Define a notifier callback for this connection.</p>
    <dl><dt><b>Description</b>:</dt><dd>The notifier callback will be invoked for state changes and I/O events as requests are processed. The supported events are: <ul><li>HTTP_EVENT_STATE <mdash/> The request is changing state. Valid states are: HTTP_STATE_BEGIN, HTTP_STATE_CONNECTED, HTTP_STATE_FIRST, HTTP_STATE_CONTENT, HTTP_STATE_READY, HTTP_STATE_RUNNING, HTTP_STATE_FINALIZED and HTTP_STATE_COMPLETE. A request will always visit all states and the notifier will be invoked for each and every state. This is true even if the request has no content, the HTTP_STATE_CONTENT will still be visited. </li><li>HTTP_EVENT_READABLE <mdash/> There is data available to read </li><li>HTTP_EVENT_WRITABLE <mdash/> The outgoing pipeline can absorb more data </li><li>HTTP_EVENT_ERROR <mdash/> The request has encountered an error </li><li>HTTP_EVENT_DESTROY <mdash/> The connection structure is about to be destoyed </li><li>HTTP_EVENT_OPEN <mdash/> The application layer is now open </li><li>HTTP_EVENT_CLOSE <mdash/> The application layer is now closed </li></ul>
Before the notifier is invoked, espSetConn is called to set the connection object in the thread local storage. This enables the ESP Abbreviated API.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object created via <a class="ref" href="#group___http_conn_1ga25308956e8946f7f26ee9adc396534d3" external="http.dtags">httpCreateConn</a></td>
    <tr><td class="param">notifier</td><td>Notifier function.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga491fdeaf71f15fb950d54245b7de865b"></a>
<div class="api">
  <div class="prototype">
    void
    espSetParam
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *var, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Set a request parameter value.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set the value of a named request parameter to a string value. Parameters are defined via requeset POST data or request URI queries. This API permits these initial request parameters to be set or modified.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">var</td><td>Name of the request parameter to set.</td>
    <tr><td class="param">value</td><td>Value to set.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaab0d7914afa7352d5708048c021f1ee1"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *
    espSetRec
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec)
  </div>
  <div class="apiDetail">
<p>Set the current database record.</p>
    <dl><dt><b>Description</b>:</dt><dd>The current record is used to supply data to various abbreviated controls, such as: text(), <a class="ref" href="#group___esp_abbrev_1gaa3f886ac8ecb0b4f2f6decb1da1f5c82">input()</a>, checkbox and dropdown().</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">rec</td><td>Record object to define as the current record.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The grid instance. This permits chaining.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga3151f73107b752661efecbacf9011894"></a>
<div class="api">
  <div class="prototype">
    void
    espSetStatus
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, int status)
  </div>
  <div class="apiDetail">
<p>Set a Http response status.</p>
    <dl><dt><b>Description</b>:</dt><dd>Set the Http response status for the request. This defaults to 200 (OK).</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">status</td><td>Http status code.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga4ed2f95cccb206fc9069c0a77c5c1e62"></a>
<div class="api">
  <div class="prototype">
    void
    espShowRequest
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn)
  </div>
  <div class="apiDetail">
<p>Show request details.</p>
    <dl><dt><b>Description</b>:</dt><dd>This e request details back to the client. This is useful as a debugging tool.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga2d10fdd68ab00d306d344c815f7655e7"></a>
<div class="api">
  <div class="prototype">
    void
    espUpdateCache
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *data, int lifesecs)
  </div>
  <div class="apiDetail">
<p>Update the cached content for a request.</p>
    <dl><dt><b>Description</b>:</dt><dd>Save the given content for future requests. This is useful if the caching mode has been set to &quot;manual&quot;.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">uri</td><td>Request URI to cache for.</td>
    <tr><td class="param">data</td><td>Data to cache.</td>
    <tr><td class="param">lifesecs</td><td>Time in seconds to cache the data.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga585c648e2d4b3b6183bf22cc976b7d4b"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    espUpdateRec
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec)
  </div>
  <div class="apiDetail">
<p>Write a record to the database.</p>
    <dl><dt><b>Description</b>:</dt><dd>The record will be saved to the database after running any field validations. If any field validations fail to pass, the record will not be written and error details can be retrieved via <a class="ref" href="#group___edi_1ga653dfa35de74e1c3049b3ba9191215e0" external="edi.dtags">ediGetRecErrors</a>. If the record is a new record and the &quot;id&quot; column is EDI_AUTO_INC, then the &quot;id&quot; will be assigned prior to saving the record.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">rec</td><td>Record to write to the database.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>&quot;true&quot; if the record can be successfully written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga47475da9d7a9da33d0d07cd2a8211b8d"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espUri
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target)
  </div>
  <div class="apiDetail">
<p>Create a URI.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a URI link by expansions tokens based on the current request and route state. The target parameter may contain partial or complete URI information. The missing parts are supplied using the current request and route tables. The resulting URI is a normalized, server-local URI (that begins with &quot;/&quot;). The URI will include any defined route prefix, but will not include scheme, host or port components.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">target</td><td>The URI target. The target parameter can be a URI string or JSON style set of options. The target will have any embedded &quot;{tokens}&quot; expanded by using token values from the request parameters. If the target has an absolute URI path, that path is used directly after tokenization. If the target begins with &quot;~&quot;, that character will be replaced with the route prefix. This is a very convenient way to create application top-level relative links. <br/><br/>
 If the target is a string that begins with &quot;{AT}&quot; it will be interpreted as a controller/action pair of the form &quot;{AT}controller/action&quot;. If the &quot;controller/&quot; portion is absent, the current controller is used. If the action component is missing, the &quot;list&quot; action is used. A bare &quot;{AT}&quot; refers to the &quot;list&quot; action of the current controller. <br/><br/>
 If the target starts with &quot;{&quot; it is interpreted as being a JSON style set of options that describe the link. If the target is a relative URI path, it is appended to the current request URI path. <br/><br/>
 If the target is a JSON style of options, it can specify the URI components: scheme, host, port, path, reference and query. If these component properties are supplied, these will be combined to create a URI. <br/><br/>
 If the target specifies either a controller/action or a JSON set of options, The URI will be created according to the route URI template. The template may be explicitly specified via a &quot;route&quot; target property. Otherwise, if an &quot;action&quot; property is specified, the route of the same name will be used. If these don&apos;t result in a usable route, the &quot;default&quot; route will be used. <br/><br/>
 These are the properties supported in a JSON style &quot;{ ... }&quot; target: <ul><li>scheme String URI scheme portion </li><li>host String URI host portion </li><li>port Number URI port number </li><li>path String URI path portion </li><li>reference String URI path reference. Does not include &quot;#&quot; </li><li>query String URI query parameters. Does not include &quot;?&quot; </li><li>controller String controller name if using a controller-based route. This can also be specified via the action option. </li><li>action String Action to invoke. This can be a URI string or a controller action of the form {AT}controller/action. </li><li>route String Route name to use for the URI template </li></ul></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A normalized, server-local Uri string.</dd></dl>
    <dl><dt><b>Example</b>:</dt><dd>EspUri(conn, &quot;http://example.com/index.html&quot;, 0); <br/>
 espUri(conn, &quot;/path/to/index.html&quot;, 0); <br/>
 espUri(conn, &quot;../images/splash.png&quot;, 0); <br/>
 espUri(conn, &quot;~/client/images/splash.png&quot;, 0); <br/>
 espUri(conn, &quot;${app}/client/images/splash.png&quot;, 0); <br/>
 espUri(conn, &quot;@controller/checkout&quot;, 0); <br/>
 espUri(conn, &quot;@controller/&quot;) <br/>
 espUri(conn, &quot;@init&quot;) <br/>
 espUri(conn, &quot;@&quot;) <br/>
 espUri(conn, &quot;{ action: &apos;@post/create&apos; }&quot;, 0); <br/>
 espUri(conn, &quot;{ action: &apos;checkout&apos; }&quot;, 0); <br/>
 espUri(conn, &quot;{ action: &apos;logout&apos;, controller: &apos;admin&apos; }&quot;, 0); <br/>
 espUri(conn, &quot;{ action: &apos;admin/logout&apos;&quot;, 0); <br/>
 espUri(conn, &quot;{ product: &apos;candy&apos;, quantity: &apos;10&apos;, template: &apos;/cart/${product}/${quantity}&apos; }&quot;, 0); <br/>
 espUri(conn, &quot;{ route: &apos;~/STAR/edit&apos;, action: &apos;checkout&apos;, id: &apos;99&apos; }&quot;, 0); <br/>
 espUri(conn, &quot;{ template: &apos;~/client/images/${theme}/background.jpg&apos;, theme: &apos;blue&apos; }&quot;, 0);.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga6cb98a81fac3b68ef772a6cc7a37a156"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    getMethod
()
  </div>
  <div class="apiDetail">
<p>Get the HTTP method.</p>
    <dl><dt><b>Description</b>:</dt><dd>This is a convenience API to return the Http method.</dd></dl>
    <dl><dt>Returns:</dt><dd>The HttpConn.rx.method property.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gad221f00eaacb1253a8e9d0f29e11c55e"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    makeUri
(<a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *target)
  </div>
  <div class="apiDetail">
<p>Create a URI.</p>
    <dl><dt><b>Description</b>:</dt><dd>Create a URI link by expansions tokens based on the current request and route state. The target parameter may contain partial or complete URI information. The missing parts are supplied using the current request and route tables. The resulting URI is a normalized, server-local URI (that begins with &quot;/&quot;). The URI will include any defined route prefix, but will not include scheme, host or port components.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">target</td><td>The URI target. The target parameter can be a URI string or JSON style set of options. The target will have any embedded &quot;{tokens}&quot; expanded by using token values from the request parameters. If the target has an absolute URI path, that path is used directly after tokenization. If the target begins with &quot;~&quot;, that character will be replaced with the route prefix. This is a very convenient way to create application top-level relative links. <br/><br/>
 If the target is a string that begins with &quot;{AT}&quot; it will be interpreted as a controller/action pair of the form &quot;{AT}controller/action&quot;. If the &quot;controller/&quot; portion is absent, the current controller is used. If the action component is missing, the &quot;list&quot; action is used. A bare &quot;{AT}&quot; refers to the &quot;list&quot; action of the current controller. <br/><br/>
 If the target starts with &quot;{&quot; it is interpreted as being a JSON style set of options that describe the link. If the target is a relative URI path, it is appended to the current request URI path. <br/><br/>
 If the target is a JSON style of options, it can specify the URI components: scheme, host, port, path, reference and query. If these component properties are supplied, these will be combined to create a URI. <br/><br/>
 If the target specifies either a controller/action or a JSON set of options, The URI will be created according to the route URI template. The template may be explicitly specified via a &quot;route&quot; target property. Otherwise, if an &quot;action&quot; property is specified, the route of the same name will be used. If these don&apos;t result in a usable route, the &quot;default&quot; route will be used. <br/><br/>
 These are the properties supported in a JSON style &quot;{ ... }&quot; target: <ul><li>scheme String URI scheme portion </li><li>host String URI host portion </li><li>port Number URI port number </li><li>path String URI path portion </li><li>reference String URI path reference. Does not include &quot;#&quot; </li><li>query String URI query parameters. Does not include &quot;?&quot; </li><li>controller String controller name if using a controller-based route. This can also be specified via the action option. </li><li>action String Action to invoke. This can be a URI string or a controller action of the form {AT}controller/action. </li><li>route String Route name to use for the URI template </li></ul></td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A normalized, server-local Uri string.</dd></dl>
    <dl><dt><b>Example</b>:</dt><dd>MakeUri(&quot;http://example.com/index.html&quot;, 0); <br/>
 makeUri(&quot;/path/to/index.html&quot;, 0); <br/>
 makeUri(&quot;../images/splash.png&quot;, 0); <br/>
 makeUri(&quot;~/client/images/splash.png&quot;, 0); <br/>
 makeUri(&quot;${app}/client/images/splash.png&quot;, 0); <br/>
 makeUri(&quot;@controller/checkout&quot;, 0); <br/>
 makeUri(&quot;@controller/&quot;) <br/>
 makeUri(&quot;@init&quot;) <br/>
 makeUri(&quot;@&quot;) <br/>
 makeUri(&quot;{ action: &apos;@post/create&apos; }&quot;, 0); <br/>
 makeUri(&quot;{ action: &apos;checkout&apos; }&quot;, 0); <br/>
 makeUri(&quot;{ action: &apos;logout&apos;, controller: &apos;admin&apos; }&quot;, 0); <br/>
 makeUri(&quot;{ action: &apos;admin/logout&apos;&quot;, 0); <br/>
 makeUri(&quot;{ product: &apos;candy&apos;, quantity: &apos;10&apos;, template: &apos;/cart/${product}/${quantity}&apos; }&quot;, 0); <br/>
 makeUri(&quot;{ route: &apos;~/STAR/edit&apos;, action: &apos;checkout&apos;, id: &apos;99&apos; }&quot;, 0); <br/>
 makeUri(&quot;{ template: &apos;~/client/images/${theme}/background.jpg&apos;, theme: &apos;blue&apos; }&quot;, 0);.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gab8d6f093fa851a73a6e80b20ea1cbc9d"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    sendGrid
(<a href="edi.html#group___edi_grid" class="ref">EdiGrid</a> *grid)
  </div>
  <div class="apiDetail">
<p>Send a Edatabase grid as a JSON string.</p>
    <dl><dt><b>Description</b>:</dt><dd>The JSON string is rendered as part of an enclosing &quot;{ data: JSON }&quot; wrapper. This API is used to send database data to client user interfaces such as Angular or Aurelia clients.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">grid</td><td>EDI grid.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Number of bytes sent.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1gaa7f2ab9ce2162dcc0a10f82e74a92d80"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    sendRec
(<a href="edi.html#group___edi_rec" class="ref">EdiRec</a> *rec)
  </div>
  <div class="apiDetail">
<p>Send a database record as a JSON string.</p>
    <dl><dt><b>Description</b>:</dt><dd>The JSON string is rendered as part of an enclosing &quot;{ data: JSON }&quot; wrapper. This API is used to send database data to client user interfaces such as Angular or Aurelia clients.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">rec</td><td>EDI record.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Number of bytes sent.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga5a39a9b8619ef0cc07818c3a79eb023c"></a>
<div class="api">
  <div class="prototype">
    void
    sendResult
(<a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a> status)
  </div>
  <div class="apiDetail">
<p>Send a JSON response result.</p>
    <dl><dt><b>Description</b>:</dt><dd>This sends a JSON response including the request success status, feedback message and field errors. This API is used to send controller action responses to client user interfaces such as Angular or Aurelia clients. The field errors apply to the current EDI record. The format of the response is: &quot;{ success: STATUS, feedback: {messages}, fieldErrors: {messages}}&quot; wrapper. The feedback messages are created via the espSetFeedback API. Field errors are created by ESP validations.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">status</td><td>Request success status. Note: this is not the HTTP response status code.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<h1>EspRoute</h1>
<a name="group___esp_route"></a>
<div class="api">
  <div class="prototype">EspRoute</div>
  <div class="apiDetail">
<p>EspRoute extended route configuration.</p>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>actions</td><td>
Table of actions.
</td>
    <tr><td class="param">uint</td><td><td>app</td><td>
Is an esp mvc application.
</td>
    <tr><td class="param">cchar *</td><td><td>appName</td><td>
App module name when compiled in combine mode.
</td>
    <tr><td class="param">uint</td><td><td>combine</td><td>
Combine C source into a single file.
</td>
    <tr><td class="param">cchar *</td><td><td>combineScript</td><td>
Combine mode script filename.
</td>
    <tr><td class="param">cchar *</td><td><td>combineSheet</td><td>
Combine mode stylesheet filename.
</td>
    <tr><td class="param">EspProc</td><td><td>commonController</td><td>
Common code for all controllers.
</td>
    <tr><td class="param">uint</td><td><td>compile</td><td>
Enable recompiling the application or esp page.
</td>
    <tr><td class="param">cchar *</td><td><td>compileCmd</td><td>
Compile command template.
</td>
    <tr><td class="param">uint</td><td><td>compileMode</td><td>
Compile the application debug or release mode.
</td>
    <tr><td class="param">cchar *</td><td><td>configFile</td><td>
Path to config file.
</td>
    <tr><td class="param">cchar *</td><td><td>currentSession</td><td>
Current login session when enforcing a single login.
</td>
    <tr><td class="param">Edi *</td><td><td>edi</td><td>
Default database for this route.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>env</td><td>
Environment variables for route.
</td>
    <tr><td class="param">uint</td><td><td>keep</td><td>
Keep intermediate source code after compiling.
</td>
    <tr><td class="param">cchar *</td><td><td>linkCmd</td><td>
Link command template.
</td>
    <tr><td class="param">MprTime</td><td><td>loaded</td><td>
When configuration was last loaded.
</td>
    <tr><td class="param">HttpRoute *</td><td><td>route</td><td>
Back link to route.
</td>
    <tr><td class="param">cchar *</td><td><td>searchPath</td><td>
Search path to use when locating compiler/linker.
</td>
    <tr><td class="param">struct EspRoute *</td><td><td>top</td><td>
Top-level route for this application.
</td>
    <tr><td class="param">uint</td><td><td>update</td><td>
Enable dynamically updating the application.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>views</td><td>
Table of views.
</td>
    <tr><td class="param">cchar *</td><td><td>winsdk</td><td>
Windows SDK.
</td>
    </table></dd></dl>
  </div>
</div>
<a name="group___esp_route_1gaa6e0943224a139d93f465b7ff2060c36"></a>
<div class="api">
  <div class="prototype">
    void
    espAddHomeRoute
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)
  </div>
  <div class="apiDetail">
<p>Add a route for the home page.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will add a home page to route ESP applications. This will add the following route: <table class='info'><tr><td>Name</td><td>Method</td><td>Pattern</td><td>Target </td></row><tr><td>home</td><td>GET,POST,PUT</td><td>^/$</td><td>index.esp </td></row></table></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>Parent route from which to inherit configuration.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1gae90883055ee760dca316820bf3d81f96"></a>
<div class="api">
  <div class="prototype">
    void
    espAddPak
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *version)
  </div>
  <div class="apiDetail">
<p>Add the specified pak to the package.json packs list.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute defining the ESP application.</td>
    <tr><td class="param">name</td><td>Desired pak name. For example: &quot;angular-mvc&quot;.</td>
    <tr><td class="param">version</td><td>Pack version string.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1gab12f7c6108ac1d0a972fc837e9b9dec8"></a>
<div class="api">
  <div class="prototype">
    void
    espAddRouteSet
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *set)
  </div>
  <div class="apiDetail">
<p>Add a route set.</p>
    <dl><dt><b>Description</b>:</dt><dd>This will add a set of routes. It will add a home route and optional routes depending on the route set. <table class='info'><tr><td>Name</td><td>Method</td><td>Pattern</td><td>Target </td></row><tr><td>home</td><td>GET,POST,PUT</td><td>^/$</td><td>index.esp </td></row></table></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>Parent route from which to inherit configuration.</td>
    <tr><td class="param">set</td><td>Route set to select. Use &quot;angular-mvc&quot;, or &quot;html-mvc&quot;.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1ga0d812aed0ff96f0ffa281860270e8910"></a>
<div class="api">
  <div class="prototype">
    int
    espBindProc
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *pattern, void *actionProc)
  </div>
  <div class="apiDetail">
<p>Define an action for a URI pattern.</p>
    <dl><dt><b>Description</b>:</dt><dd>This creates a new route and binds the action function to a URI pattern.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>Parent route object from which to inherit settings when creating the new route.</td>
    <tr><td class="param">pattern</td><td>URI pattern to use to find the releavant route.</td>
    <tr><td class="param">actionProc</td><td>EspProc callback procedure to invoke when the action is requested.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1ga359fc00970449817245c5759a1ad8c4c"></a>
<div class="api">
  <div class="prototype">
    char *
    espBuildScript
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *page, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *cacheName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *layout, <a href="#struct_esp_state" class="ref">EspState</a> *state, char **err)
  </div>
  <div class="apiDetail">
<p>Convert an ESP web page into C code.</p>
    <dl><dt><b>Description</b>:</dt><dd>This parses an ESP web page into an equivalent C source view.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute object.</td>
    <tr><td class="param">page</td><td>ESP web page script.</td>
    <tr><td class="param">path</td><td>Pathname for the ESP web page. This is used to process include directives which are resolved relative to this path.</td>
    <tr><td class="param">cacheName</td><td>MD5 cache name. Not a full path.</td>
    <tr><td class="param">layout</td><td>Default layout page. Deprecated.</td>
    <tr><td class="param">state</td><td>Reserved. Must set to NULL.</td>
    <tr><td class="param">err</td><td>Output parameter to hold any relevant error message.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Compiled script. Return NULL on errors.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1ga01d07d3db11f99c0d1b93b068ec56c67"></a>
<div class="api">
  <div class="prototype">
    int
    espCache
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *uri, int lifesecs, int flags)
  </div>
  <div class="apiDetail">
<p>Add caching for response content.</p>
    <dl><dt><b>Description</b>:</dt><dd>This call configures caching for request responses. Caching may be used for any HTTP method, though typically it is most useful for state-less GET requests. Output data may be uniquely cached for requests with different request parameters (query, post and route parameters). <br/><br/>
 When server-side caching is requested and manual-mode is not enabled, the request response will be automatically cached. Subsequent client requests will revalidate the cached content with the server. If the server-side cached content has not expired, a HTTP Not-Modified (304) response will be sent and the client will use its client-side cached content. This results in a very fast transaction with the client as no response data is sent. Server-side caching will cache both the response headers and content. <br/><br/>
 If manual server-side caching is requested, the response will be automatically cached, but subsequent requests will require the handler to explicitly send cached content by calling <a class="ref" href="#group___http_cache_1ga59f76623bdccce81465d4a4246d9be87" external="http.dtags">httpWriteCached</a>. <br/><br/>
 If client-side caching is requested, a &quot;Cache-Control&quot; Http header will be sent to the client with the caching &quot;max-age&quot; set to the lifesecs argument value. This causes the client to serve client-cached content and to not contact the server at all until the max-age expires. Alternatively, you can use <a class="ref" href="#group___http_tx_1ga48d151787b55f20e0b4fdeb725264c25" external="http.dtags">httpSetHeader</a> to explicitly set a "Cache-Control header. For your reference, here are some keywords that can be used in the Cache-Control Http header. <br/><br/>
 &quot;max-age&quot; Max time in seconds the resource is considered fresh. &quot;s-maxage&quot; Max time in seconds the resource is considered fresh from a shared cache. &quot;public&quot; marks authenticated responses as cacheable. &quot;private&quot; shared caches may not store the response. &quot;no-cache&quot; cache must re-submit request for validation before using cached copy. &quot;no-store&quot; response may not be stored in a cache. &quot;must-revalidate&quot; forces clients to revalidate the request with the server. &quot;proxy-revalidate&quot; similar to must-revalidate except only for proxy caches. <br/><br/>
 Use client-side caching for static content that will rarely change or for content for which using &quot;reload&quot; in the browser is an adequate solution to force a refresh. Use manual server-side caching for situations where you need to explicitly control when and how cached data is returned to the client. For most other situations, use server-side caching.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute object.</td>
    <tr><td class="param">uri</td><td>URI to cache. If the URI is set to &quot;*&quot; all URIs for that action are uniquely cached. If the request has POST data, the URI may include such post data in a sorted query format. E.g. {uri: /buy?item=scarf&amp;quantity=1}.</td>
    <tr><td class="param">lifesecs</td><td>Lifespan of cache items in seconds. If not set to positive integer, the lifesecs will default to the route lifespan.</td>
    <tr><td class="param">flags</td><td>Cache control flags. Select ESP_CACHE_MANUAL to enable manual mode. In manual mode, cached content will not be automatically sent. Use <a class="ref" href="#group___http_cache_1ga59f76623bdccce81465d4a4246d9be87" external="http.dtags">httpWriteCached</a> in the request handler to write previously cached content. <br/><br/>
 Select ESP_CACHE_CLIENT to enable client-side caching. In this mode a &quot;Cache-Control&quot; Http header will be sent to the client with the caching &quot;max-age&quot;. WARNING: the client will not send any request for this URI until the max-age timeout has expired. <br/><br/>
 Select HTTP_CACHE_RESET to first reset existing caching configuration for this route. <br/><br/>
 Select HTTP_CACHE_COMBINED, HTTP_CACHE_ONLY or HTTP_CACHE_UNIQUE to define the server-side caching mode. Only one of these three mode flags should be specified. <br/><br/>
 If the HTTP_CACHE_COMBINED flag is set, the request params (query, post data and route parameters) will be ignored and all request for a given URI path will cache to the same cache record. <br/><br/>
 Select HTTP_CACHE_UNIQUE to uniquely cache requests with different request parameters. The URIs specified in uris should not contain any request parameters. <br/><br/>
 Select HTTP_CACHE_ONLY to cache only the exact URI with parameters specified in uris. The parameters must be in sorted www-urlencoded format. For example: /example.esp?hobby=sailing&amp;name=john.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>A count of the bytes actually written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1gaa6f62a5bb430f502b6067cac74d948e4"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    espCompile
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#mpr.html#group___mpr_dispatcher" class="ref">MprDispatcher</a> *dispatcher, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *source, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *module, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *cacheName, int isView, char **errMsg)
  </div>
  <div class="apiDetail">
<p>Compile an ESP page, controller or view.</p>
    <dl><dt><b>Description</b>:</dt><dd>This compiles ESP resources into loadable, cached modules.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute object.</td>
    <tr><td class="param">dispatcher</td><td>Optional dispatcher to use when waiting for the compilation command.</td>
    <tr><td class="param">source</td><td>ESP source file name.</td>
    <tr><td class="param">module</td><td>Output module file name.</td>
    <tr><td class="param">cacheName</td><td>MD5 cache name. Not a full path.</td>
    <tr><td class="param">isView</td><td>Set to &quot;true&quot; if the source is a view.</td>
    <tr><td class="param">errMsg</td><td>Reference to receive an error message if the routine fails.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>&quot;True&quot; if the compilation is successful. Errors are logged and sent back to the client if ShowErrors is true.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1ga321abe89cc91246b2a44f40493988670"></a>
<div class="api">
  <div class="prototype">
    void
    espDefineAction
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *targetKey, void *actionProc)
  </div>
  <div class="apiDetail">
<p>Define an action.</p>
    <dl><dt><b>Description</b>:</dt><dd>Actions are C procedures that are invoked when specific URIs are routed to the controller/action pair.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute object.</td>
    <tr><td class="param">targetKey</td><td>Target key used to select the action in a HttpRoute target. This is typically a URI prefix.</td>
    <tr><td class="param">actionProc</td><td>EspProc callback procedure to invoke when the action is requested.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1gae250d071bb458546c8ed5fad3aba5e84"></a>
<div class="api">
  <div class="prototype">
    void
    espDefineBase
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="#esp_8h_1aa0c56d9f50902eb9cf16889d3d95c129" class="ref">EspProc</a> baseProc)
  </div>
  <div class="apiDetail">
<p>Define a base function to invoke for all controller actions.</p>
    <dl><dt><b>Description</b>:</dt><dd>A base function can be defined that will be called before calling any controller action. This emulates a super class constructor.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute object.</td>
    <tr><td class="param">baseProc</td><td>Function to call just prior to invoking a controller action.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1gab7ebccfe31eb1e07f3f40db700d18bd9"></a>
<div class="api">
  <div class="prototype">
    void
    espDefineView
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path, void *viewProc)
  </div>
  <div class="apiDetail">
<p>Define a view.</p>
    <dl><dt><b>Description</b>:</dt><dd>Views are ESP web pages that are executed to return presentation data back to the client.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>Http route object.</td>
    <tr><td class="param">path</td><td>Path to the ESP view source code.</td>
    <tr><td class="param">viewProc</td><td>EspViewPrococ callback procedure to invoke when the view is requested.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1gac85c52178c5b387706bb31b419f9f059"></a>
<div class="api">
  <div class="prototype">
    char *
    espExpandCommand
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *command, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *source, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *module)
  </div>
  <div class="apiDetail">
<p>Expand a compile or link command template.</p>
    <dl><dt><b>Description</b>:</dt><dd>This expands a command template and replaces &quot;${tokens}&quot; with their equivalent value. The supported tokens are: <ul><li>ARCH - Build architecture (i386, x86_64) </li><li>CC - Compiler pathname </li><li>DEBUG - Compiler debug options (-g, -Zi, -Od) </li><li>INC - Include directory (out/inc) </li><li>LIB - Library directory (out/lib, out/bin) </li><li>LIBS - Required libraries directory (esp, mpr) </li><li>OBJ - Name of compiled source (out/lib/view-MD5.o) </li><li>OUT - Output module (view_MD5.dylib) </li><li>SHLIB - Shared library extension (.lib, .so) </li><li>SHOBJ - Shared object extension (.dll, .so) </li><li>SRC - Path to source code for view or controller (already templated) </li><li>TMP - System temporary directory </li><li>WINSDK - Path to the Windows SDK </li><li>VS - Path to Visual Studio </li></ul></dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute object.</td>
    <tr><td class="param">command</td><td>Http connection object.</td>
    <tr><td class="param">source</td><td>ESP web page source pathname.</td>
    <tr><td class="param">module</td><td>Output module pathname.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>An expanded command line.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1ga97b13560e8c066d70810b2df3e8d7f78"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *
    espGetConfig
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *defaultValue)
  </div>
  <div class="apiDetail">
<p>Get a configuration value from the ESP package.json.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute defining the ESP application.</td>
    <tr><td class="param">key</td><td>Configuration property path. May contain dots.</td>
    <tr><td class="param">defaultValue</td><td>Default value to use if the configuration is not defined. May be null.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The Configuration string value.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1gab784ceb8c6581201c05c93729f733b6c"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    espHasPak
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *name)
  </div>
  <div class="apiDetail">
<p>Test if the ESP application includes the specified pak.</p>
    <dl><dt><b>Description</b>:</dt><dd>This tests the dependencies property specified pak.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute defining the ESP application.</td>
    <tr><td class="param">name</td><td>Desired pak name. For example: &quot;angular-mvc&quot;.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the specified pak is supported.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1gaca1c2bea3bde8c348d3d70c35ef21667"></a>
<div class="api">
  <div class="prototype">
    int
    espInit
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *prefix, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *path)
  </div>
  <div class="apiDetail">
<p>Initialize ESP.</p>
    <dl><dt><b>Description</b>:</dt><dd>This initializes a route for ESP. This may be called multiple times for different routes.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>Parent route from which to inherit configuration.</td>
    <tr><td class="param">prefix</td><td>Optional URI prefix for all application URIs.</td>
    <tr><td class="param">path</td><td>Pathname to the esp.json file.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1ga619751fdfd2aa494d0074bd661e5e103"></a>
<div class="api">
  <div class="prototype">
    int
    espLoadCompilerRules
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)
  </div>
  <div class="apiDetail">
<p>Load the compiler rules from esp-compile.json.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute object.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1ga8719b78bdfb4e3228c6e9be843f45140"></a>
<div class="api">
  <div class="prototype">
    int
    espLoadConfig
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)
  </div>
  <div class="apiDetail">
<p>Configure an ESP application.</p>
    <dl><dt><b>Description</b>:</dt><dd>Load the esp.json and package.json configuration files.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>Parent route from which to inherit configuration.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1ga1f27d029ea92c75a16d2c67d31f64141"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___esp_route" class="ref">EspRoute</a> *
    espRoute
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)
  </div>
  <div class="apiDetail">
<p>Return the corresponding EspRoute for the given Route.</p>
    <dl><dt><b>Description</b>:</dt><dd>Returns the defined EspRoute for the given Route. Creates a new EspRoute if required.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>Parent route from which to inherit configuration.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>The EspRoute object.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td></td>
    </table></dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1gacd7c962cf79038c3d7604c72dc43bbdb"></a>
<div class="api">
  <div class="prototype">
    int
    espSaveConfig
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)
  </div>
  <div class="apiDetail">
<p>Save the in-memory ESP package.json configuration to the default location for the ESP application defined by the specified route.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute defining the ESP application.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1gada3b399d10e3f1eaee004cde256e379f"></a>
<div class="api">
  <div class="prototype">
    int
    espSetConfig
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *value)
  </div>
  <div class="apiDetail">
<p>Set a configuration value to the ESP package.json.</p>
    <dl><dt><b>Description</b>:</dt><dd>This updates the in-memory copy of the package.json only.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute defining the ESP application.</td>
    <tr><td class="param">key</td><td>Configuration property path. May contain dots.</td>
    <tr><td class="param">value</td><td>Value to set the property to.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1ga115c8f838daf7b187cb8a07787734f37"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1ad5c9d4ba3dc37783a528b0925dc981a0" class="ref">bool</a>
    espTestConfig
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *key, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *desired)
  </div>
  <div class="apiDetail">
<p>Test if a configuration property from the ESP package.json has a desired value.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute defining the ESP application.</td>
    <tr><td class="param">key</td><td>Configuration property path. May contain dots.</td>
    <tr><td class="param">desired</td><td>Desired value to compare with.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>True if the configuration property has the desired value.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<h2>Functions</h2>
<a name="esp_8h_1a0ac80522752809c14f74ccaf02e48de5"></a>
<div class="api">
  <div class="prototype">
    <a href="#group___esp_route" class="ref">EspRoute</a> *
    espCreateRoute
(<a href="edi.html#http.html#group___http_route" class="ref">HttpRoute</a> *route)
  </div>
  <div class="apiDetail">
<p>Create an EspRoute object.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute to associate with.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>EspRoute object.</dd></dl>
  </div>
</div>
<a name="esp_8h_1a4ac8508f88ec5ed15eec2627ae71a4eb"></a>
<div class="api">
  <div class="prototype">
    int
    espEmail
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *to, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *from, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *subject, <a href="edi.html#mpr.html#group___mpr_time" class="ref">MprTime</a> date, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *mime, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *message, <a href="edi.html#mpr.html#group___mpr_list" class="ref">MprList</a> *files)
  </div>
  <div class="apiDetail">
<p>Send mail using sendmail.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn connection object.</td>
    <tr><td class="param">to</td><td>Message recipient.</td>
    <tr><td class="param">from</td><td>Message sender.</td>
    <tr><td class="param">subject</td><td>Message subject.</td>
    <tr><td class="param">date</td><td>Message creation date. Set to null to use the current date/time.</td>
    <tr><td class="param">mime</td><td>Message mime type. Set to null for text/plain.</td>
    <tr><td class="param">message</td><td>Message body.</td>
    <tr><td class="param">files</td><td>MprList of files to send with the message.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if the email is successfully sent.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
  </div>
</div>
<a name="esp_8h_1a56eafbf70fb0509e85aa5070becbaca6"></a>
<div class="api">
  <div class="prototype">
    void
    espInitHtmlOptions
(<a href="#struct_esp" class="ref">Esp</a> *esp)
  </div>
  <div class="apiDetail">
<p>Add HTLM internal options to the Esp.options hash.</p>
  </div>
</div>
<a name="esp_8h_1ab4f5a8bba279335541372845ab87e094"></a>
<div class="api">
  <div class="prototype">
    int
    espInitParser
()
  </div>
  <div class="apiDetail">
<p>Initialize the ESP configuration file parser.</p>
  </div>
</div>
<a name="esp_8h_1a2f63950b45dd427b2bdfa7ae1c8f85c0"></a>
<div class="api">
  <div class="prototype">
    int
    espOpen
(<a href="edi.html#mpr.html#group___mpr_module" class="ref">MprModule</a> *module)
  </div>
  <div class="apiDetail">
<p>ESP initialization entry point.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">module</td><td>Module object if loaded as an MPR module.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
  </div>
</div>
<a name="esp_8h_1a866f3f7347e4ae34becaa6923ff0c586"></a>
<div class="api">
  <div class="prototype">
    <a href="edi.html#osdep.html#osdep_8h_1a7d08ccc1e981eb4d5a238641ac4ccfc1" class="ref">ssize</a>
    espRenderFeedback
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *types)
  </div>
  <div class="apiDetail">
<p>Render feedback messages.</p>
    <dl><dt><b>Description</b>:</dt><dd>Feedback messages for one-time messages that are sent to the client. For HTML clients, feedback messages use the session state store and persist for only one request. For smart/thick clients, feedback messages are sent as JSON responses via the espSendFeedback API. See <a class="ref" href="#group___esp_req_1ga12f466c3ea4ae6e7eb2692c80e03a45b">espSetFeedback</a> for how to define feedback messages.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>Http connection object.</td>
    <tr><td class="param">types</td><td>Types of feedback message to retrieve. Set to &quot;*&quot; to retrieve all types of feedback. This may be set to any word, but the following feedback types are typically supported as per RFC 5424: &quot;debug&quot;, &quot;info&quot;, &quot;notice&quot;, &quot;warn&quot;, &quot;error&quot;, &quot;critical&quot;.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Number of bytes written.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Deprecated.</dd></dl>
  </div>
</div>
<a name="esp_8h_1ac44e50b7d3c22c093e139a172c878608"></a>
<div class="api">
  <div class="prototype">
    void
    espSetData
(<a href="edi.html#http.html#group___http_conn" class="ref">HttpConn</a> *conn, void *data)
  </div>
  <div class="apiDetail">
<p>Set a private data reference for the current request.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>HttpConn object.</td>
    <tr><td class="param">data</td><td>Data object to associate with the current request. This must be a managed reference.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Reference to private data.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Prototype.</dd></dl>
  </div>
</div>
<a name="esp_8h_1a2b6ab1f6cf9333533ece4ed0f871e0a6"></a>
<div class="api">
  <div class="prototype">
    int
    espStaticInitialize
(<a href="#group___esp_route_1ga8de65adb179b1ab04bf7c1d621ffff9c" class="ref">EspModuleEntry</a> entry, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *appName, <a href="edi.html#osdep.html#osdep_8h_1a0f128c3e0c83721af0220c00554e9c4e" class="ref">cchar</a> *routeName)
  </div>
  <div class="apiDetail">
<p>Initialize a static library ESP module.</p>
    <dl><dt><b>Description</b>:</dt><dd>This invokes the ESP initializers for the required pre-compiled ESP shared library.</dd></dl>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">entry</td><td>ESP initialization function.</td>
    <tr><td class="param">appName</td><td>Name of the ESP application.</td>
    <tr><td class="param">routeName</td><td>Name of the route in the appweb.conf file for this ESP application or page.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Evolving.</dd></dl>
  </div>
</div>
<h2>Typedefs</h2>
<a name="esp_8h_1aa0c56d9f50902eb9cf16889d3d95c129"></a>
<div class="api">
  <div class="prototype">
    typedef void(* EspProc)(HttpConn *conn).
  </div>
  <div class="apiDetail">
<p>Procedure callback.</p>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga60cdb8438d2c59c8014fe550129fbc0d"></a>
<div class="api">
  <div class="prototype">
    typedef EspProc EspAction.
  </div>
  <div class="apiDetail">
<p>ESP Action.</p>
    <dl><dt><b>Description</b>:</dt><dd>Actions are run after a request URI is routed to a controller.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_req_1ga4645d40178e3548fd0e6ad13fec1b5ed"></a>
<div class="api">
  <div class="prototype">
    typedef void(* EspViewProc)(HttpConn *conn).
  </div>
  <div class="apiDetail">
<p>View procedure callback.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">conn</td><td>Http connection object.</td>
    </table></dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="group___esp_route_1ga8de65adb179b1ab04bf7c1d621ffff9c"></a>
<div class="api">
  <div class="prototype">
    typedef int(* EspModuleEntry)(struct HttpRoute *route, MprModule *module).
  </div>
  <div class="apiDetail">
<p>Entry point for a loadable ESP module.</p>
    <dl><dt>Parameters:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">route</td><td>HttpRoute object.</td>
    <tr><td class="param">module</td><td>Mpr module object.</td>
    </table></dd></dl>
    <dl><dt>Returns:</dt><dd>Zero if successful, otherwise a negative MPR error code.</dd></dl>
    <dl><dt><b>API</b> Stability:</dt><dd>Stable.</dd></dl>
    <dl><dt>See Also:</dt><dd>
    <a href="#struct_esp" class="ref">Esp</a></dd></dl>
  </div>
</div>
<a name="struct_esp"></a>
<div class="api">
  <div class="prototype">Esp</div>
  <div class="apiDetail">
<p>Top level ESP structure.</p>
    <dl><dt>Fields:</dt><dd>
    <table class="parameters" title="Parameters">
    <tr><td class="param">int</td><td><td>compileMode</td><td>
Force a debug compile.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>databases</td><td>
Cloned databases.
</td>
    <tr><td class="param">MprEvent *</td><td><td>databasesTimer</td><td>
Database prune timer.
</td>
    <tr><td class="param">EdiService *</td><td><td>ediService</td><td>
Database service.
</td>
    <tr><td class="param">cchar *</td><td><td>hostedDocuments</td><td>
Documents directory if hosted.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>internalOptions</td><td>
Table of internal HTML control options.
</td>
    <tr><td class="param">int</td><td><td>inUse</td><td>
Active ESP request counter.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_thread_local" external="mpr.dtags">MprThreadLocal</a> *</td><td><td>local</td><td>
Thread local data.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_mutex" external="mpr.dtags">MprMutex</a> *</td><td><td>mutex</td><td>
Multithread lock.
</td>
    <tr><td class="param">int</td><td><td>reloading</td><td>
Reloading ESP and modules.
</td>
    <tr><td class="param"><a class="ref" href="#struct_mpr_hash" external="mpr.dtags">MprHash</a> *</td><td><td>vstudioEnv</td><td>
Visual Studio environment.
</td>
    </table></dd></dl>
  </div>
</div>
